c# string记录

news2024/9/9 1:32:01

c# srting 的操作例子

在这里插入图片描述

在C#中,string 类型是一个不可变(immutable)的引用类型,表示文本。由于它的不可变性,对字符串的任何修改操作实际上都会返回一个新的字符串实例。以下是一些常见的 string 操作例子:

  1. 字符串连接
    csharp
string firstName = "John";  
string lastName = "Doe";  
string fullName = firstName + " " + lastName; // 使用 + 操作符连接字符串  
Console.WriteLine(fullName); // 输出: John Doe  

// 或者使用 String.Concat 方法

fullName = String.Concat(firstName, " ", lastName);  
Console.WriteLine(fullName); // 输出: John Doe  
  
// C# 6.0 及以上版本可以使用字符串插值  
fullName = $"{firstName} {lastName}";  
Console.WriteLine(fullName); // 输出: John Doe
  1. 字符串比较
    csharp
string str1 = "Hello";  
string str2 = "hello";  
  
// 不区分大小写的比较  
bool isEqualIgnoreCase = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);  
Console.WriteLine(isEqualIgnoreCase); // 输出: True  
  
// 区分大小写的比较  
bool isEqualCaseSensitive = str1.Equals(str2, StringComparison.Ordinal);  
Console.WriteLine(isEqualCaseSensitive); // 输出: False
  1. 字符串查找
    csharp
string text = "Hello, world!";  
int index = text.IndexOf("world"); // 查找子字符串的索引  
Console.WriteLine(index); // 输出: 7  
  
bool contains = text.Contains("world"); // 检查字符串是否包含子字符串  
Console.WriteLine(contains); // 输出: True
  1. 字符串替换
    csharp
string original = "Hello, world!";  
string replaced = original.Replace("world", "C#"); // 替换字符串中的子字符串  
Console.WriteLine(replaced); // 输出: Hello, C#!
  1. 字符串分割
    csharp
string sentence = "Hello, this is a sentence.";  
string[] words = sentence.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries); // 使用空格和逗号分割字符串  
foreach (var word in words)  
{  
    Console.WriteLine(word);  
}  
// 输出:  
// Hello  
// this  
// is  
// a  
// sentence
  1. 字符串格式化
    csharp
int number = 123;  
string formatted = string.Format("The number is {0:D3}.", number); // 使用字符串格式化  
Console.WriteLine(formatted); // 输出: The number is 123.  
  
// 或者使用 $ 字符串插值和复合格式化  
formatted = $"The number is {number:D3}.";  
Console.WriteLine(formatted); // 输出: The number is 123.
  1. 字符串截取
    csharp
string substring = "Hello, world!".Substring(7); // 从索引7开始截取到字符串末尾  
Console.WriteLine(substring); // 输出: world!  
  
// 也可以指定长度  
substring = "Hello, world!".Substring(7, 5); // 从索引7开始截取长度为5的子字符串  
Console.WriteLine(substring); // 输出: world
  1. 字符串去空格
    csharp
string trimmed = "   Hello, world!   ".Trim(); // 去除字符串两端的空格  
Console.WriteLine(trimmed); // 输出: Hello, world!  

// 去除特定字符

string trimmedChars = "!!!Hello, world!!!".Trim('!'); // 去除字符串两端的'!'  
Console.WriteLine(trimmedChars); // 输出: Hello, world
这些例子展示了C#中字符串操作的一些基本用法。由于 string 的不可变性,这些操作都不会修改原始字符串,而是返回一个新的字符串。

c#将两个空格或两个以上空格替换为aa

在C#中,如果你想要将字符串中所有两个或两个以上的连续空格替换为"aa",你可以使用正则表达式来实现这一点。正则表达式允许你定义一种模式,该模式可以匹配字符串中的特定部分,并且可以使用这个模式来执行替换操作。

下面是一个使用正则表达式来替换两个或两个以上连续空格为"aa"的示例:

csharp

using System;  
using System.Text.RegularExpressions;  
  
class Program  
{  
    static void Main()  
    {  
        string input = "Hello    World!  This is  a test.";  
        string pattern = @"\s{2,}"; // 匹配两个或两个以上的空白字符  
        string replacement = "aa";  
  
        string result = Regex.Replace(input, pattern, replacement);  
  
        Console.WriteLine(result); // 输出: HelloaaWorld!aaThis is aa a test.  
    }  
}

在这个示例中,pattern 变量定义了一个正则表达式,该表达式使用 \s 来匹配任何空白字符(包括空格、制表符、换行符等),而 {2,} 则指定了匹配前面的元素(在这个例子中是 \s)两次或更多次。然后,Regex.Replace 方法使用这个模式和替换字符串 “aa” 来替换输入字符串中所有匹配的部分。

请注意,这个正则表达式会匹配任何两个或两个以上的连续空白字符,并将它们替换为 “aa”。如果你只想替换空格(而不是其他类型的空白字符),你可以稍微修改正则表达式,使用 [ ]{2,} 来明确指定只匹配空格字符:

csharp

string pattern = @"[ ]{2,}"; // 只匹配两个或两个以上的空格字符

这将确保只有空格字符(而不是其他类型的空白字符,如制表符或换行符)会被替换为 “aa”。然而,在大多数情况下,如果你的目标是处理文本中的空格,并且不介意其他类型的空白字符也被替换,那么使用 \s{2,} 是更通用的选择。

回车键对应的字符

回车键对应的字符在计算机中通常用于表示换行,但在不同的操作系统和上下文中,其表示方式可能有所不同。

一、不同操作系统中的回车换行符

Windows系统:
在Windows系统中,回车对应的字符通常是回车符(Carriage Return,简称CR)和换行符(Line Feed,简称LF)的组合,即“\r\n”。这里,“\r”代表回车符,将光标移动到行首(实际上在大多数现代文本编辑器中不会真的将光标移回行首,而是保留在行尾),“\n”代表换行符,将光标移动到下一行的开始位置。
Unix/Linux系统:
在Unix和Linux系统中,回车对应的字符仅仅是换行符(Line Feed,简称LF),即“\n”。这意味着在这些系统中,换行操作仅通过换行符来实现,没有单独的回车符。
MacOS系统(早期版本):
早期的MacOS系统(在Mac OS X之前)使用的是回车符(Carriage Return,简称CR),即“\r”作为换行字符。但自Mac OS X起,MacOS系统逐渐与Unix/Linux系统接轨,采用换行符(LF,“\n”)作为换行字符。

二、回车键在文本编辑和程序开发中的作用

文本编辑:在文本编辑器中,回车键的主要作用是换行。无论在哪个操作系统中,按下回车键都会在光标位置插入一个换行符,从而将文本分隔到下一行。
程序开发:在编程和脚本语言中,回车符(或换行符)也扮演着重要角色。它们用于分隔代码的不同部分,如语句、函数定义等。在执行程序时,编译器或解释器会根据换行符来识别代码的结构。

三、总结

回车键对应的字符在不同操作系统中有所不同,主要是由于历史和技术原因造成的。在Windows系统中是“\r\n”,在Unix/Linux和现代的MacOS系统中是“\n”。了解这些差异对于跨平台开发和文件交换非常重要,以确保文本和代码的正确处理和显示。

c# 中获取string后缀

在C#中,如果你想要获取一个字符串(string)的后缀,即字符串的末尾部分,你可以使用几种不同的方法。最直接的方法之一是使用Substring方法,该方法允许你基于索引位置来截取字符串的一部分。但是,在获取后缀时,你首先需要知道你想要截取多少个字符,或者基于某个特定的分隔符来截取。

基于固定长度的后缀
如果你知道你想要获取的后缀的长度是固定的,你可以这样做:

csharp

string originalString = "HelloWorld";  
int suffixLength = 5; // 比如你想要获取的后缀长度为5  
if (originalString.Length >= suffixLength)  
{  
    string suffix = originalString.Substring(originalString.Length - suffixLength);  
    Console.WriteLine(suffix); // 输出 "World"  
}  
else  
{  
    Console.WriteLine("字符串长度不足以获取所需长度的后缀");  
}

基于特定分隔符的后缀
如果后缀是基于某个特定分隔符(如.、_等)来定义的,你可以先找到这个分隔符在字符串中的位置,然后截取分隔符之后的部分作为后缀。这通常涉及到LastIndexOf方法和Substring方法的组合使用。

csharp

string originalString = "example.txt";  
char separator = '.';  
int separatorIndex = originalString.LastIndexOf(separator);  
if (separatorIndex != -1)  
{  
    string suffix = originalString.Substring(separatorIndex + 1);  
    Console.WriteLine(suffix); // 输出 "txt"  
}  
else  
{  
    Console.WriteLine("字符串中未找到分隔符");  
}

注意事项
使用Substring方法时,确保不要超出字符串的界限,否则将抛出ArgumentOutOfRangeException异常。
当你基于特定分隔符查找后缀时,如果分隔符不存在于字符串中,LastIndexOf将返回-1。确保检查这个返回值以避免异常。
在处理文件名或路径等字符串时,你可能还需要考虑路径分隔符(如\或/)的特殊情况,这些字符在字符串中可能具有特殊含义。
通过上述方法,你可以灵活地获取C#中字符串的后缀部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hvv第二周,喝了3瓶红牛,心慌、头晕,我还行么?

Hvv第二周了,你们的物资挥霍的怎么样了啊?今天看到群里有小伙伴说喝了3瓶红牛,结果现在搞得头晕晕的,很慌。 Hvv物资来由 这不仅让我想来聊聊护网物资的来由和发展,也让后来进入网安这个行业的小伙伴了解一下&#xf…

【Plotly-驯化】一文教您画出Plotly中动态可视化饼图:pie技巧

【Plotly-驯化】一文教您画出Plotly中动态可视化饼图:pie技巧 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内…

逻辑漏洞复现(pikachu靶场,大米cms)

逻辑漏洞 漏洞介绍 1.成因 逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额等。 2. 分析 对常见的漏洞进行过…

Qt Phonon多媒体框架详解及简单实例分享

目录 1、Phonon 简介 2、Phonon基本类 2.1、VideoPlayer类 2.2、MediaObject类 2.3、Phonon::createPath() 2.4、AudioOutput类 2.5、VideoWidget Class 2.6、SeekSlider类 2.7、VolumeSlider类 3、Phonon 完整使用实例 4、总结 C++软件异常排查从入门到精通系列教程…

ChatGPT小狐狸AI付费创作系统v3.0.3+前端

小狐狸GPT付费体验系统的开发基于国外很火的ChatGPT,这是一种基于人工智能技术的问答系统,可以实现智能回答用户提出的问题。相比传统的问答系统,ChatGPT可以更加准确地理解用户的意图,提供更加精准的答案。同时,小狐狸…

项目管理“四管”法则

在项目管理中,“四管”的具体内容可能因不同的项目管理框架和实践而有所不同。但一般而言,它们可以概括为与项目成功密切相关的四个关键管理领域。以下是项目管理中“四管”: 一、人力资源管理(管人) 项目团队是项目…

AMQP-核心概念-终章

本文参考以下链接摘录翻译: https://www.rabbitmq.com/tutorials/amqp-concepts 连接(Connections) AMQP 0-9-1连接通常是长期保持的。AMQP 0-9-1是一个应用级别的协议,它使用TCP来实现可靠传输。连接使用认证且可以使用TLS保护…

Python 进行数据可视化(Matplotlib, Seaborn)

数据可视化是数据科学和分析中的重要工具,它通过图形表示数据,使得复杂的数据变得易于理解和分析。在Python中,最常用的两个数据可视化库是Matplotlib和Seaborn。 Matplotlib 1. 简介 Matplotlib是一个用于生成二维图形的Python库。它提供…

深入浅出消息队列----【阶段总结篇】

深入浅出消息队列----【阶段总结篇】 总览nameSrvBrokerproducer(生产者)consumer(消费者) 串联起来 本文仅是文章笔记,整理了原文章中重要的知识点、记录了个人的看法 文章来源:编程导航-鱼皮【yes哥深入浅…

小间距 LED 显示屏:引领显示技术新潮流

在现代显示技术领域,小间距LED显示屏以其先进的像素点控技术和卓越的显示效果,正逐渐成为市场的新宠。在此为您详细解析小间距LED显示屏相较于传统DLP背投显示屏的优势所在。 1、显示像素的完整性更高 在室内中高端显示市场中,DLP背投显示曾占…

PHP西陆招聘求职系统小程序源码

🔥【职场新宠】西陆招聘求职系统,你的职场加速器🚀 🎉【开篇安利:一站式求职新体验】🎉 还在为找工作焦头烂额吗?是时候告别传统招聘网站的繁琐与低效了!今天给大家种草一个超赞的…

1480. 找字典码最小的字符串

问题描述 编写程序,针对输入的 N 个不同的字符串,输出其中字典码最小的字符串。 输入 输入第一行给出正整数 N ; 随后 N 行,每行给出一个长度小于 80 的非空字符串,其中不会出现换行符,空格&#xff0c…

用Python打造精彩动画与视频.2.1 Python基础语法概述

2.1 Python基础语法概述 Python作为一门功能强大且易于学习的编程语言,其基础语法简单直观,非常适合初学者入门。这一节将带你了解Python的基本语法规则,为后续制作动画和视频打下坚实的基础。 1. 变量与数据类型 Python的变量不需要提前声…

【初阶数据结构篇】实现链式结构二叉树(二叉链)下篇

文章目录 实现链式结构二叉树(二叉链)下篇前言二叉树实现方法二叉树查找值为x的结点二叉树的销毁二叉树的层序遍历判断是否为完全二叉树 二叉树性质选择题二叉树遍历选择题 实现链式结构二叉树(二叉链)下篇 前言 接上一篇 实现链…

一文弄懂北斗RTK差分​高精度定位技术原理

北斗RTK差分定位技术是一种高精度定位技术,它的原理基于北斗卫星导航系统。北斗RTK差分定位技术需要三个接收器:基站接收器、移动接收器和校正接收器。基站接收器从北斗导航卫星系统接收信号,并将这些信号传输到校正接收器。移动接收器接收来…

【AI大模型】-- 应用部署

一、GPU价格参考 有些在京东就能买到:https://item.jd.com/10065826100148.html美国商务部限制 GPU 对华出口的算力不超过 4800 TOPS 和带宽不超过 600 GB/s,导致最强的 H100 和 A100 禁售。英伟达随后推出针对中国市场的 A800 和 H800。 H100 与 A100&…

打造重庆市数字化教育“新名片”,广阳湾珊瑚中学凭实力“出圈”!

分布于教学楼连廊顶部的智能照明设备,根据不同的时间和场景需求自动调节灯光亮度和开关状态;安装于各个教室内的智能黑板、学校同步时钟、学生互动设备,在极简以太全光网的赋能下,为师生提供丰富的教学体验与学习支持......行走于重庆市广阳湾珊瑚中学,像是与充满科技感的“校园…

开源数据结构存储系统Redis的内部数据结构详解(下)

目录 1、整数集合 1.1、整数集合的定义 1.2、升级 1.3、降级 2、压缩列表 2.1、压缩列表定义 2.2、压缩列表节点 2.3、压缩列表对象 3、总结 C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/de…

【大数据】虚拟机前置准备

前言: 我们了解了大数据Hadoop是分布式体系。 所以, 为了能确保正常部署好大数据的集群,我们需要做好提前的准备: 准备多台Linux虚拟机 准备基础的Linux操作环境(SSH免密、防火墙、JDK等) 配置多台Linux…