c# string记录

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#中字符串的后缀部分。

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值