当前位置: 首页 > news >正文

C#中的字符串

String

在实例方法中string虽然传入的是引用类型  但是修改string  并不是修改原来堆里面的值  而是又重新创建一个堆值  用来然后用方法内的变量指向新的堆值

C# 中的字符串(string 类型)提供了许多有用的方法来处理字符串数据。以下是一些常用的字符串方法:

  1. 连接和拼接

    • Concat(string str0, string str1, ... , string str32):连接多个字符串。

    • Concat(IEnumerable<string> strings):连接字符串集合。

    • Format(IFormatProvider provider, string format, params object[] args):格式化字符串。

  2. 比较

    • Compare(string strA, string strB):比较两个字符串。

    • CompareOrdinal(string strA, string strB):使用字符串的原始顺序比较两个字符串。

    • Equals(string str):判断当前字符串是否与另一个字符串相等。

    • Equals(string strA, string strB):判断两个字符串是否相等。

  3. 大小写转换

    • ToLower():将字符串转换为小写。

    • ToLowerInvariant():使用文化不敏感的方式将字符串转换为小写。

    • ToUpper():将字符串转换为大写。

    • ToUpperInvariant():使用文化不敏感的方式将字符串转换为大写。

  4. 查找和搜索

    • Contains(string value):判断字符串是否包含指定的子字符串。

    • EndsWith(string value):判断字符串是否以指定的子字符串结束。

    • IndexOf(string value):返回子字符串在字符串中首次出现的索引。

    • IndexOfAny(char[] anyOf):返回任何字符在字符串中首次出现的索引。

    • LastIndexOf(string value):返回子字符串在字符串中最后一次出现的索引。

    • StartsWith(string value):判断字符串是否以指定的子字符串开始。

  5. 替换和移除

    • Replace(string oldValue, string newValue):替换字符串中的字符或子字符串。

    • Remove(int startIndex):移除从指定位置开始的子字符串。

    • Remove(int startIndex, int count):移除从指定位置开始的指定数量的字符。

  6. 拆分和分割

    • Split(params char[] separator):使用指定的字符数组作为分隔符来拆分字符串。

    • Split(params string[] separator):使用指定的字符串数组作为分隔符来拆分字符串。

  7. 修剪和删除

    • Trim():删除字符串两端的空白字符。

    • Trim(char[] trimChars):删除字符串两端的指定字符。

  8. 插入

    • Insert(int startIndex, string value):在字符串的指定位置插入一个子字符串。

  9. 长度和大小

    • Length:获取字符串的长度。

  10. 子字符串

    • Substring(int startIndex):返回从指定位置开始的子字符串。

    • Substring(int startIndex, int length):返回从指定位置开始的指定长度的子字符串。

  11. 复制和复制到字符数组

    • Copy():创建字符串的副本。

    • CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count):将字符串的一部分复制到字符数组。

StringBuilder

StringBuilder 是 C# 中的一个类,用于高效地创建和修改可变字符串。它特别适用于在循环或频繁修改字符串的场景中,因为它避免了每次修改字符串时创建新的字符串对象的开销。以下是 StringBuilder 类的一些常用方法:

  1. 构造函数

    • StringBuilder():创建一个空的 StringBuilder 对象。

    • StringBuilder(int capacity):创建一个具有指定初始容量的 StringBuilder 对象。

    • StringBuilder(string value):创建一个 StringBuilder 对象,并用指定的字符串初始化。

    • StringBuilder(string value, int capacity):创建一个 StringBuilder 对象,并用指定的字符串和容量初始化。

  2. Append 方法

    • Append(string value):将字符串追加到 StringBuilder 的末尾。

    • Append(char value):将单个字符追加到 StringBuilder 的末尾。

    • Append(char[] value):将字符数组追加到 StringBuilder 的末尾。

    • Append(bool value):将布尔值作为字符串追加到 StringBuilder 的末尾。

    • Append(int value):将整数值作为字符串追加到 StringBuilder 的末尾。

    • Append(uint value):将无符号整数值作为字符串追加到 StringBuilder 的末尾。

    • Append(long value):将长整数值作为字符串追加到 StringBuilder 的末尾。

    • Append(ulong value):将无符号长整数值作为字符串追加到 StringBuilder 的末尾。

    • Append(float value):将浮点数值作为字符串追加到 StringBuilder 的末尾。

    • Append(double value):将双精度浮点数值作为字符串追加到 StringBuilder 的末尾。

    • Append(decimal value):将十进制数值作为字符串追加到 StringBuilder 的末尾。

    • Append(object value):将对象的字符串表示形式追加到 StringBuilder 的末尾。

  3. AppendLine 方法

    • AppendLine():追加一个环境特定的行终止符(通常是 "\r\n")。

    • AppendLine(string value):追加一个字符串和一个行终止符。

  4. Insert 方法

    • Insert(int index, string value):在 StringBuilder 的指定位置插入一个字符串。

  5. Remove 方法

    • Remove(int startIndex, int length):移除 StringBuilder 中从 startIndex 开始的 length 个字符。

  6. Replace 方法

    • Replace(char oldChar, char newChar):将 StringBuilder 中所有旧字符替换为新字符。

    • Replace(string oldValue, string newValue):将 StringBuilder 中所有旧字符串替换为新字符串。

  7. Clear 方法

    • Clear():移除 StringBuilder 中的所有内容。

  8. Capacity 属性

    • Capacity:获取或设置 StringBuilder 的最大容量。

  9. Length 属性

    • Length:获取 StringBuilder 当前包含的字符数。

  10. ToString 方法

    • ToString():返回 StringBuilder 当前内容的字符串表示形式。

  11. MaxCapacity 属性

    • MaxCapacity:获取 StringBuilder 的最大容量限制。

值类型(value types)和引用类型(reference types)在方法调用时的不同

在C#中,值类型(value types)和引用类型(reference types)在方法调用时的传入方式有所不同,这会影响到栈(stack)的使用情况。

  1. 值类型

    • 当值类型作为参数传递给方法时,它们是通过值传递(pass by value)的。这意味着值类型的数据会被复制到调用者方法的栈上,然后传递给被调用的方法。

    • 被调用方法接收到的是原始值类型的一个副本,因此对参数的修改不会影响到原始数据。

  2. 引用类型

    • 引用类型作为参数传递给方法时,是通过引用传递(pass by reference)的。这并不是说整个对象被复制到栈上,而是对象的引用(即内存地址)被复制到栈上。

    • 被调用方法接收到的是原始对象的引用,因此对参数的修改会影响到原始对象。

具体到栈的变化,以下是值类型和引用类型传入方法时栈的变化情况:

  • 值类型

    1. 调用方法时,值类型的数据被复制到调用者方法的栈上。

    2. 栈上为每个参数分配空间,并将值类型数据复制到这些空间中。

    3. 当方法调用完成,这些栈上的空间会被释放。

  • 引用类型

    1. 调用方法时,引用类型的引用(内存地址)被复制到调用者方法的栈上。

    2. 栈上为每个参数分配空间,并将引用类型的引用复制到这些空间中。

    3. 当方法调用完成,这些栈上的空间也会被释放,但它们只是引用的复制,不影响原始对象。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _7._24day
{
    internal class Program
    {
        static void Main(string[] args)
        {
            /*  作业:
  作业1:字符串反序输出,如:hello ===> olleh
  作业2:将“hello you world”反向输出“world you hello”
  作业3:Email中提取用户名和域名,如:ddy_dhj@163.com    用户名:ddy_dhj 域名:www.163.com
  作业4:字符串某个子串所在位置,如:hello,查ll在字符串中的位置。多种方式实现。提示:for, indexof
  作业5:用户输入的字符串中有多少大写字母、小写字母、数字、其他字符的个数。如:hello, h:1, e:1, l:2, o:1
  作业6:让用户输入一句话判断有没有邪恶两个字,有的话用 * *替换。如:老赵是个邪恶的人 ==》老赵是个 * *的人
  作业7:把{“诸葛亮”,“鸟叔”,“卡哇伊”}字符串数组,变成使用 | 连接的字符串,如:诸葛亮|鸟叔|卡哇伊
  作业8:输入一个网址,判断顶级域名是什么类型,com为商业网站,net为网络服务机构网站,org为非营利组织网站,
  gov为政府网站,edu为教育网站;如:用户输入https://www.baidu.com,提示:顶级域名为:.com,这是一个商业网站*/
            string s1 = "hello";
            Stringinversion(s1);
            string s2 = "hello you world";
            Reverseoutput(s2);
            string s3 = "ddy_dhj@163.com";
            Withdraw(s3);
            string s4 = "hello";
            int res1 = Position(s4);
            Console.WriteLine(res1);
            string s5 = "12345!!!!WWWWWLLLLLppppa";
            Statistics(s5);
            string s6 = "老赵是个邪恶的人";
            Judgewhether(s6);
            string s7 = "“诸葛亮”,“鸟叔”,“卡哇伊”";
            Concatenatedstring(s7);
            string s8 = "https://www.baidu.com";
            Judgmentdomain(s8);

        }
        #region 1.字符串反转输出方法Stringinversion
        static void Stringinversion(string s)
        {
            for (int i = s.Length - 1; i >= 0; i--)
            {
                Console.Write(s[i]);
            }
            Console.WriteLine();
        }
        #endregion

        #region 2.反向输出
        static void Reverseoutput(string s)
        {
            string[] words = s.Split(' ');
            Array.Reverse(words);
            foreach (var item in words)
            {
                Console.Write(item + " ");
            }
            Console.WriteLine();
        }
        #endregion

        #region 3.提取用户名和域名
        static void Withdraw(string s)
        {
            string[] strings = s.Split('@');
            Console.WriteLine("用户名:" + strings[0] + "  域名:" + strings[1]);
        }


        #endregion

        #region 4.子串所在位置
        static int Position(string s)
        {
            int x = s.IndexOf("ll");
            return x;
        }
        #endregion

        #region 5.多少大写字母、小写字母
        static void Statistics(string s)
        {
            int capital = 0;
            int lower = 0;
            int digit = 0;
            int anther = 0;
            for (int i = 0; i < s.Length; i++)
            {
                if (char.IsUpper(s[i])) capital++;
                else if (char.IsLower(s[i])) lower++;
                else if (char.IsDigit(s[i])) digit++;
                else anther++;


            }
            Console.WriteLine("大写字母:"+capital);
            Console.WriteLine("小写字母:"+lower);
            Console.WriteLine("数字:"+digit);
            Console.WriteLine("其他字符的个数:" + anther);

        }

        #endregion

        #region 6.有没有邪恶
        static void Judgewhether(string s)
        {
            if (s.Contains("邪恶"))
            {
                string res = s.Replace("邪恶", "**");
                Console.WriteLine(res);
            }
            
        }
        #endregion

        #region 7.连接的字符串
        static void Concatenatedstring(string s)
        {
            string[] strings = s.Split(',');
            for (int i = 0; i < strings.Length; i++)
            {
                string v1 = strings[i].Trim('“');
                string v2 = v1.Trim('”');
                if (i != strings.Length - 1)
                {
                    Console.Write(v2 + "|");
                }
                else
                {
                    Console.Write(v2);
                }
            }
            Console.WriteLine();

        }

        #endregion

        #region 8.判断顶级域名
        static void Judgmentdomain(string s)
        {
            if (s.EndsWith(".com"))
            {
                Console.WriteLine("这是商业网站");
            }
            if (s.EndsWith(".net"))
            {
                Console.WriteLine("这是网络服务机构网站");
            }
            if (s.EndsWith(".org"))
            {
                Console.WriteLine("这是非营利组织网站");
            }
            if (s.EndsWith(".org"))
            {
                Console.WriteLine("这是政府网站");
            }
            if (s.EndsWith(".org"))
            {
                Console.WriteLine("这是教育网站");
            }


        }
        #endregion
    }
}
 

相关文章:

C#中的字符串

String 在实例方法中string虽然传入的是引用类型 但是修改string 并不是修改原来堆里面的值 而是又重新创建一个堆值 用来然后用方法内的变量指向新的堆值 C# 中的字符串&#xff08;string 类型&#xff09;提供了许多有用的方法来处理字符串数据。以下是一些常用的字符…...

docker安装部署elasticsearch7.15.2

docker安装部署elasticsearch7.15.2 1.拉取es镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.2如果不想下载或者镜像拉去太慢可以直接下载文章上面的镜像压缩包 使用镜像解压命令 docker load -i elasticsearch-7-15-2.tar如下图所示就表示镜像解压成…...

Symfony 入门指南:快速安装与基础配置

Symfony 入门指南&#xff1a;快速安装与基础配置 Symfony 是一个强大而灵活的 PHP 框架&#xff0c;广泛应用于构建现代 Web 应用程序。本指南将带您一步一步地了解如何快速安装 Symfony&#xff0c;并完成基本配置&#xff0c;以便您能够开始使用这个强大的框架。 目录 引…...

3.3V升压至5V的AH6922芯片:高效能的SOP8封装解决方案

# 3.3V升压至5V的AH6922芯片&#xff1a;高效能的SOP8封装解决方案 在当今快速发展的电子设备领域&#xff0c;对于电源管理的需求日益增长。特别是对于便携式产品和手持设备&#xff0c;一个高效、稳定且体积小巧的升压解决方案变得至关重要。本文将介绍一款专为这些需求设计…...

赋能未来教育,3DCAT助力深圳鹏程技师学院打造5G+XR实训室

随着国家对教育行业的重视&#xff0c;实训室建设已成为推动教育现代化的关键。《教育信息化2.0行动计划》、《职业教育示范性虚拟仿真实训基地建设指南》等政策文件&#xff0c;明确指出了加强虚拟仿真实训教学环境建设的重要性。 在这一大背景下&#xff0c;教育行业对于实训…...

力扣141环形链表问题|快慢指针算法详细推理,判断链表是否有环|龟兔赛跑算法

做题链接 目录 前言&#xff1a; 一、算法推导&#xff1a; 1.假设有环并且一定会相遇&#xff0c;那么一定是在环内相遇&#xff0c;且是快指针追上慢指针。 2.有环就一定会相遇吗&#xff1f;快指针是每次跳两步&#xff0c;有没有可能把慢指针跳过去&#xff1f; 3.那一定…...

React 常见的报错及解决方法

1、Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons&#xff08;无效的钩子调用。钩子只能在函数组件的内部调用。这可能是由于以下原因之一&#xff09; 原因&#x…...

更新服务器nginx 1.26.1版本

今天在官网下载了nginx1的1.26.1版本&#xff0c;使用gpt的脚本想直接覆盖安装&#xff0c;脚本如下 #!/bin/bash# 设置变量 NGINX_VERSION"1.26.1" TAR_FILE"nginx-$NGINX_VERSION.tar.gz" SRC_DIR"nginx-$NGINX_VERSION"# 检查是否存在tar包 …...

JAVA代码审计JAVA0基础学习(需要WEB基础知识)DAY2

JAVA 在 SQL执行当中 分为3种写法&#xff1a; JDBC注入分析 Mybatis注入分析 Hibernate注入分析 JDBC 模式不安全JAVA代码示例部分特征 定义了一个 sql 参数 直接让用户填入id的内容 一个最简单的SQL语句就被执行了 使用安全语句却并没有被执行 Mybatis&#xff1a; #…...

SpringBoot整合elasticsearch-java

一、依赖 系统使用的是ElasticSearch8.2.0 <dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.1.0</version> </dependency> 二、配置 1、yml文件配置 elastics…...

网络服务与应用

一、 文件传输 FTP 1、FTP采用典型的C/S架构&#xff08;即服务器端和客户端模型&#xff09;&#xff0c;客户端与服务器端建立TCP连接之后即可实现文件的上传、下载。 2、FTP传输过程 1&#xff09;、主动模式&#xff08;POST&#xff09;&#xff1a;入站连接 2&#x…...

Git项目如何配置,如何上传至GitHub

Git项目配置并上传至GitHub的详细步骤如下&#xff1a; 一、准备工作 创建GitHub账号&#xff1a; 访问GitHub官网&#xff0c;点击“Sign up”注册新账号。填写相关信息&#xff0c;包括用户名、邮箱和密码&#xff0c;完成账号创建。安装Git客户端&#xff1a; 访问Git官网…...

Python教程(一):环境搭建及PyCharm安装

目录 引言1. Python简介1.1 编译型语言 VS 解释型语言 2. Python的独特之处3. Python应用全览4. Python版本及区别5. 环境搭建5.1 安装Python&#xff1a; 6. 开发工具&#xff08;IDE&#xff09;6.1 PyCharm安装教程6.2 永久使用教程 7. 编写第一个Hello World结语 引言 在当…...

神经网络与注意力机制的权重学习对比:公式探索

神经网络与注意力机制的权重学习对比&#xff1a;公式探索 注意力机制与神经网络权重学习的核心差异 在探讨神经网络与注意力机制的权重学习时&#xff0c;一个核心差异在于它们如何处理输入数据的权重。神经网络通常通过反向传播算法学习权重&#xff0c;而注意力机制则通过学…...

C语言------指针讲解(3)

一、字符指针 在指针中&#xff0c;我们知道有一类指针类型为字符指针char*; int main() {char ch w;char* pc &ch;*pc w;return 0; } 还有一种使用方式如下&#xff1a; 上述代码中&#xff0c;本质是把hello的首字符的地址放到了pstr中。即把一个常量字符串的首字符…...

博客建站 - 常用的公共DNS服务器

国内公共DNS服务 服务器名称首选DNS服务备用DNS服务114 DNS114.114.114.114114.114.115.115阿里 DNS223.5.5.5223.6.6.6腾讯云公共DNS119.29.29.29182.254.116.116百度公共DNS180.76.76.76110.242.68.68 国外公共DNS服务 服务器名称首选DNS服务备用DNS服务备注Google DNS8.8…...

用Redisson的RMap做一个简单的购物车示例

RMap是Redisson提供的一个高级数据结构&#xff0c;它封装了Redis中的Hash数据类型&#xff0c;提供了一个类似Java HashMap的接口。RMap非常适合在需要分布式共享的键值对集合场景中使用&#xff0c;以下是一些典型的应用场景&#xff1a; 分布式缓存&#xff1a; RMap可以用作…...

「12月·长沙」第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)

随着科技的飞速发展&#xff0c;智能机器人在当今社会的重要性愈发凸显。从制造业的自动化生产线&#xff0c;到医疗领域的手术机器人&#xff0c;再到家庭生活中的智能助手&#xff0c;机器人与人工智能的融合正在改变着我们的生产和生活方式。第四届机器人、自动化与智能控制…...

传神社区|数据集合集第7期|法律NLP数据集合集

自从ChatGPT等大型语言模型&#xff08;Large Language Model, LLM&#xff09;出现以来&#xff0c;其类通用人工智能&#xff08;AGI&#xff09;能力引发了自然语言处理&#xff08;NLP&#xff09;领域的新一轮研究和应用浪潮。尤其是ChatGLM、LLaMA等普通开发者都能运行的…...

完美解决Ubuntu的MySQL临时文件夹修改调整

打开终端&#xff0c;输入以下命令 $ sudo -i # 切换root用户 $ systemctl stop mysql.service $ mkdir /home/tmp $ chown root:root /home/tmp $ chmod 1777 /home/tmp $ gedit /etc/mysql/mysql.conf.d/mysqld.cnf以上最后一条命令执行完后&#xff0c;在打开的mysqld.cnf文…...

shell基础编程

初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语、英语 计算机语言:c语言、c、(java php python go shell) 编译型语言 c c java 解释型语言 php python bash ​ 编译型语言:编译型语言的首先将源代码编译生成机器语言&#xff0c;再由机…...

近期代码报错解决笔记

1.TypeError: ‘bool’ object is not callable 想print("Type of head:", type(entity_emb[head]))&#xff0c;结果报如下错误&#xff1a; 源代码&#xff1a; 因为 print 仍然被当作一个布尔值处理&#xff0c;而不是作为函数调用。这个问题的根源在于 print …...

apache设置ssl代理

<VirtualHost *:8082> ServerName localhost DocumentRoot D:\xampp\htdocs\somgl\dist #证书 SSLProtocol all -SSLv2 SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:3DES SSLEngine on SSLProxyEngine on SSLProxyVerify…...

数据库中单表的查询(select)

单表查询 所有的查找都会得到一张虚拟表 一、 最简单的查询 SELECT 123; SELECT asd; SELECT 11;二、 从表中获取数据 select 字段名,字段名 from 表名 2.1 全字段查询 SELECT sid,sname,birthday,ssex,classid FROM student; SELECT * FROM student; -- 使用*不利于s…...

Spring源码-BeanFactory类关系层级

BeanFactory 访问Spring bean容器的根接口。 这是bean容器的基本客户端视图;例如{link ListableBeanFactory}和{link org.springframework.beans.factory.config。ConfigurableBeanFactory}可用于特定目的。 这个接口是由包含许多bean定义的对象实现的&#xff0c;每个bean定义…...

Electron 结合 Selenium + chromedriver 驱动服务实现浏览器多开

背景 在调研浏览器多开的过程中&#xff0c;electron 有自带的 browserview&#xff0c;webview&#xff0c;但是上面两个受制于 electron 内核版本限制&#xff0c;升级不够灵活&#xff0c;对新版的网页支持可能不及时&#xff0c;甚至不兼容&#xff0c;必须通过发布新的客…...

手持式气象检测设备:便携科技,气象探测

一、手持式气象检测设备&#xff1a;小巧身躯&#xff0c;大能量 手持式气象检测设备&#xff0c;顾名思义&#xff0c;是一种可以手持操作的气象监测工具。它集成了温度、湿度、气压、风速风向等多种传感器&#xff0c;能够实时获取气象数据&#xff0c;并通过显示屏或手机APP…...

shell 发送邮件脚本(免密)

#!/bin/bash ENV$1 TARGET_VERSION$2 TO$3 # SMTP服务器设置 SMTP_SERVER"邮箱服务地址" SMTP_PORT"25"# 邮件信息 FROM"jenkinsy.com" SUBJECT"Deployment Status Notification" BODY$ENV"发布完成&#xff0c;版本 &#xff1a…...

Web动画(lottie篇)

一、Lottie简介 Lottie是一个库&#xff0c;可以解析使用AE制作的动画&#xff08;需要用bodymovin导出为json格式&#xff09;&#xff0c;支持web、ios、android和react native。在web侧&#xff0c;lottie-web库可以解析导出的动画json文件&#xff0c;并将其以svg或者canva…...

昇思25天学习打卡营第20天|CV-ResNet50图像分类

打卡 目录 打卡 图像分类 ResNet网络介绍 数据集准备与加载 可视化部分数据集 残差网络构建 Building Block 结构 代码实现 Bottleneck结构 代码实现 构建ResNet50网络 代码定义 模型训练与评估 可视化模型预测 重点&#xff1a;通过网络层数加深&#xff0c;感知…...

grep: /etc/mysql/my.cnf: 没有那个文件或目录

当你收到 "grep: /etc/mysql/my.cnf: 没有那个文件或目录" 的错误信息时&#xff0c;这意味着你的系统上可能没有默认的 MySQL/MariaDB 配置文件 /etc/mysql/my.cnf。MariaDB 和 MySQL 可能会使用不同的配置文件路径。下面是一些步骤来帮助你找到正确的配置文件&…...

养猫好物|宠物空气净化器是不是智商税?靠谱猫毛空气净化器推荐

宠物空气净化器是不是智商税&#xff1f;宠物空气净化器是否真有其效&#xff0c;是许多由于要不要买空气净化器养宠人心中的疑惑。作为呼吸科医生&#xff0c;我深知良好空气质量对呼吸道健康的重要性&#xff0c;因此建议所有家庭&#xff0c;尤其是养有猫狗等宠物的家庭&…...

【CPS出版】2024年智能计算与数据分析国际学术会议(ICDA 2024,9月6日-8)

为探讨数据科学和计算智能领域的关键问题&#xff0c;促进相关交流&#xff0c;2024年智能计算与数据分析国际学术会议&#xff08;ICDA 2024)将于2024年9月6日-8日在中国青岛召开。 本届会议拟邀请数据分析和计算智能领域的顶级专家、学者和产业界优秀人才&#xff0c;围绕当前…...

AutoGen框架革新:解锁新闻稿写作的新境界

前言 今天带来的仍然是AutoGen基于AssistantAgent和UserProxyAgent的例子&#xff0c;以帮助大家一起消化目前最前卫的AI应用框架。这是一个AIGC最擅长&#xff0c;因为生成新闻稿嘛&#xff0c;同时又需要利用Agent的一个常规Demo。了解LangChain的同学&#xff0c;会通过对比…...

数据结构之队列详解

1.队列的概念以及结构 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFo(Frist in Frist out)的特性 入队列&#xff1a;进行插入才操作的一端称为队尾 出队列&#xff1a;进行删除操作的一…...

[渗透测试] 反序列化漏洞

反序列化漏洞 ​ 序列化&#xff1a;将对象的状态信息转换为可以传输或存储的形式的过程。简单的来说&#xff0c;就是将一个抽象的对象转换成可以传输的字符串 &#xff0c;以特定的形式在进行之间实现跨平台的传输。 序列化大多以字节流、字符串、json串的形式来传输。将对…...

C++ 类型转换 包括C风格的转换、static_cast、const_cast、reinterpret_cast、dynamic_cast、模板特化等

C 类型转换 包括C风格的转换、static_cast、const_cast、reinterpret_cast、dynamic_cast、模板特化等 flyfish 0. 隐式转换&#xff08;Implicit Conversions&#xff09; 隐式转换是编译器自动进行的类型转换&#xff0c;通常在需要将一个类型转换为另一个类型以匹配函数参…...

等保通过标准

等保测评&#xff0c;即信息系统安全等级保护测评&#xff0c;是国家对信息系统安全等级保护的一种评估活动。它涉及到安全管理、安全技术、安全运维等多个方面&#xff0c;旨在评定信息系统是否达到了国家设定的安全等级保护标准。等保测评的通过标准通常会根据信息系统的安全…...

reduceByKey 函数详解

reduceByKey 函数详解 实现原理 reduceByKey 函数主要用于处理分布式数据集。它接收两个操作符作为参数&#xff1a; keySelector&#xff1a;这是一个映射函数&#xff0c;用于从输入元素中提取键。 valueReducer&#xff1a;这是另一个函数&#xff0c;用于将具有相同键的…...

CSI-RS在信道中传输的过程

简单介绍CSI-RS信号生成&#xff0c;在信道中传输和接收的过程 1.载波配置 首先需要配置载波相关的参数 系统带宽和子载波间隔 5G NR中&#xff0c;系统带宽和子载波间隔是两个关键参数&#xff0c;共同决定无线资源的分配和使用 系统带宽 5G NR支持广泛的系统带宽&…...

建造者模式(Builder Pattern)工作原理

文章目录 [toc]建造者模式&#xff08;Builder Pattern&#xff09;工作原理一、基本概念二、主要角色三、工作流程&#xff08;一&#xff09;定义产品&#xff08;二&#xff09;定义抽象建造者&#xff08;三&#xff09;定义具体建造者&#xff08;四&#xff09;定义指挥者…...

Ubuntu22.04安装Go语言的几种方式

在 Ubuntu 22.04 上安装 Go 语言可以通过几种不同的方法&#xff0c;以下是两种常见的安装方法&#xff1a; 方法1&#xff1a;使用 go 官方安装脚本 打开终端。 下载 Go 语言的安装脚本&#xff1a; curl -O https://go.dev/dl/go1.22.5.linux-amd64.tar.gz请检查 Go 官方网…...

Typora笔记上传到CSDN

1.Typora 安装 Typora链接&#xff1a;百度网盘 提取码&#xff1a;b6d1 旧版本是不需要破解的 后来的版本比如1.5.9把放在typora的根目录下就可以了 2.上传到CSDN 步骤 csdn 写文章-使用MD编辑器-导入本地md文件即可 问题 图片没法显示 原因 图片的链接是本地的 当然没法…...

Modbus转BACnet/IP网关BA100-配硬件说明

在现代自动化系统中&#xff0c;不同设备和系统之间的通信至关重要&#xff0c;Modbus和BACnet/IP协议虽然各有优势&#xff0c;但它们之间的直接通信存在障碍。钡铼Modbus转BACnet/IP网关作为连接这两种协议的桥梁&#xff0c;允许不同系统之间的无缝数据交换。 一、Modbus转…...

DjangoRF实战-2-apps-users

1、用户模块 创建一个用户模块子应用&#xff0c;用来管理用户&#xff0c;和认证和授权。 1.1根目录创建apps&#xff0c; 为了使用方便&#xff0c;还需要再pycharm中设置一下资源路径&#xff0c;就可以自动提示 1.2注册子应用 1.3添加应用根目录到环境变量path python导…...

java面试题,有synchronized锁,threadlocal、数据可以设置默认值、把redis中的json转为对象

有面试题&#xff0c;有synchronized锁&#xff0c;threadlocal 一、面试题小记二、加锁synchronized1. 先看代码2. synchronized 讲解2.1. 同步代码块2.2. 同步方法2.3. 锁的选择和影响2.4. 注意事项2.5 锁的操作&#xff0c;手动释放锁&#xff0c;显式地获取锁&#xff08;属…...

Apache Spark:深度解析

文章目录 引言Apache Spark 官网链接Spark 的原理1. 核心组件2. 弹性分布式数据集&#xff08;RDD&#xff09;3. 执行模型 基础使用1. 环境搭建2. 示例代码 高级功能1. DataFrame 和 Dataset2. 机器学习3. 流处理 优缺点优点缺点 结论 引言 Apache Spark 是一个快速、通用、可…...

使用umi作为模板如何实现权限管理

三种权限管理的方法&#xff1a; 在做后台管理系统时&#xff0c;难免会使用到权限管理&#xff0c;权限管理方式有三种&#xff0c;分别是&#xff1a;路由、守卫、后端配合。 路由&#xff1a;通过动态路由&#xff0c;根据登录人员不同注册不同的路由&#xff0c;直接让没…...

系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识-解读

系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识 4.1.1 信息安全的概念4.1.1.1 信息安全的范围4.1.1.1.1 设备安全4.1.1.1.2 数据安全4.1.1.1.3 内容安全4.1.1.1.4 行为安全 4.1.2 信息存储安全4.1.2.1 信息使用的安全4.1.2.1.1 用户的标识与验证4.1.2.1.…...

【Rust光年纪】探索Rust游戏开发世界:六款引人注目的游戏引擎与框架

探索Rust游戏开发引擎&#xff1a;选择合适的工具 前言 随着Rust语言的不断发展&#xff0c;越来越多的游戏开发者开始将其视作构建游戏引擎和框架的理想选择。本文将介绍几个用于Rust语言的游戏引擎和框架&#xff0c;分别对其核心功能、使用场景、安装与配置以及API进行概览…...