C#字符串String及字符Char的相关方法

作者:springsnow 时间:2023-10-26 03:05:37 

一、字符串:

1、访问String中的字符:

string本身可看作一个Char数组。

string s = "hello world";

for (int i = 0; i < s.Length; i++)
{
   Console.WriteLine(s[i]);
}
//或者
foreach (char c in s)
{
   Console.WriteLine(c);
}

打散为字符数组(ToCharArray)

string s = "Hello World";
char[] arr = s.ToCharArray(); //
Console.WriteLine(arr[0]); // 输出数组的第一个元素,输出"H"

2、截取子串:Substring(startIndex,[length]),包括startIndex处的字符。

string s = "hello world";
Console.WriteLine(s.Substring(3));//lo world
Console.WriteLine(s.Substring(3, 4));//lo w

3、查找子串:IndexOf(subString)、LastIndexOf(subString),Contains(subString)

string s = "hello world";
Console.WriteLine(s.IndexOf("o"));//4
Console.WriteLine(s.LastIndexOf("o"));//7

Console.WriteLine(s.IndexOf('l'));//查找该字符串中的第一次'l'出现位置 2
Console.WriteLine(s.IndexOf('l', 4));//查找该字符串中的第四次'l'出现位置 9
Console.WriteLine(s.IndexOf('l', 5, 6)); //从前向后定位从第5位开始和再数6位位置之间'l'出现的位置; 9

Console.WriteLine(s.Contains("e"));//True

4、左右填充子字符串到指定长度:PadLeft(totalLength,char)、PadRight(totalLength,char)

string s = "hello world";
Console.WriteLine(s.PadLeft(15, '*'));//****hello world
Console.WriteLine(s.PadRight(15, '*'));//hello world****

5、转化大小写:ToUpper()、ToLower()

string s = "Hello World";
Console.WriteLine(s.ToUpper());//HELLO WORLD
Console.WriteLine(s.ToLower());//hello world

6、删除字符串指定位置的字符串片段:Remove(startIndex,length)

string s = "Hello World";
Console.WriteLine(s.Remove(7));//Hello W
Console.WriteLine(s.Remove(7,1));//Hello Wrld

7、替换子字符串:Replace(oldStr,newStr)

string s = "Hello World";
Console.WriteLine(s.Replace("l","*"));//He**o Wor*d
Console.WriteLine(s.Replace("or","*"));//Hello W*ld

8、去掉首尾空白或指定字符:Trim()、TrimStart()、TrimEnd()

string s = " Hello World      ";
Console.WriteLine(s.Trim());//"Hello World"
Console.WriteLine(s.TrimStart());// "Hello World      "
Console.WriteLine(s.TrimEnd());// " Hello World"

string s1 = "hello Worldhd";
Console.WriteLine(s1.Trim('h','d'));//ello Worl
Console.WriteLine(s1.TrimStart('h','d'));//ello Worldhd
Console.WriteLine(s1.TrimEnd('h','d'));//hello Worl

9、在index前位置插入字符:Insert(index,str)

string s = "Hello World";
Console.WriteLine(s.Insert(6,"测试"));//Hello 测试World

10、将字符串按某个特殊字符(串)进行分割,返回字符串数组:Split(char/char[]/string[],[StringSplitOptions]

string s = "Hello Wor  ld ";
Console.WriteLine(s.Split('o'));//"Hell","W", "r  ld "
Console.WriteLine(s.Split('e', 'd'));// "H","llo Wor  l"," "
Console.WriteLine(s.Split(new string[] { " " }, StringSplitOptions.None));//"Hello","Wor","","ld"," "
Console.WriteLine(s.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries));//"Hello","Wor","ld"

foreach (string sub in s.Split('o'))
{
   Console.WriteLine(sub);
}

11、字符串合并

1、String.Concat(str1, str2, &hellip;., strn):将n个字符串连接,中间没有连接符。字符串连接也可以用 &lsquo;+&rsquo; 来实现。

2、将字符串列表(string[],IEnumerable<string>)用str将各项串连起来,静态函数Join(SplitCh, array)

string[] arr = {"Hello”,” World"};
Console.WriteLine(string.Join("*", arr));//Hello*World

3、实例方法StringBuilder.Append

StringBuilder sb =new StringBuilder(); // 声明一个字符串构造器实例
sb.Append("A"); // 使用字符串构造器连接字符串能获得更高的性能
sb.Append('B');
Console.WriteLine(sb.ToString());// 输出"AB"

12、格式化,静态函数Format(占位符,变量)

string s = "Hello World";
Console.WriteLine(string.Format("I Love \"{0}\"", s));//I Love "Hello World"
Console.WriteLine(string.Format("{0:C}", 120.2));//¥120.20
Console.WriteLine(string.Format("{0:yyyy年MM月dd日}", DateTime.Now));

13、与数字的转换:

1、Int32.TryParse(string,out bool ):始终不抛异常,返回true/false来说明是否成功解析。string为null返回解析不成功。

int ret = 0;
if (int.TryParse("120.5", out ret))//转换异常!
{
   Console.WriteLine(ret);
}
else
{ Console.WriteLine("转换异常!"); }

2、Int32.Parse(string):解析不成功会抛出异常。string为null时抛出&ldquo;值不能为 null。参数名: String&rdquo;异常。

try
{
   Console.WriteLine(int.Parse("120.5"));//输入字符串的格式不正确
}
catch (Exception e)
{ Console.WriteLine(e.Message); }

3、Convert.ToInt32(string):解析不成功会抛出异常,但是string为null时不抛异常返回0.

try
{
   Console.WriteLine(Convert.ToInt32("120.5"));//输入字符串的格式不正确。
}
catch (Exception e)
{ Console.WriteLine(e.Message); }

14、字符串的比较:

1、Compare()是CompareTo()的静态版本,返回小于,大于还是等于后者字符串(分别为-1,1,0)

string str1 = "you are very happy!!";
string str2 = "I am very happy!!";

Console.WriteLine( string.Compare(str1, str2));//1
Console.WriteLine(str1.CompareTo(str2));//1

2、CompareOrdinal():对两字符串比较,而不考虑本地化语言和文化。将整个字符串每5个字符(10个字节)分成一组,然后逐个比较,找到第一个不相同的ASCII码后退出循环。并且求出两者的ASCII码的差。

string str1 = "you are very happy!!";
string str2 = "I am very happy!!";

Console.WriteLine(string.CompareOrdinal(str1, str2));//48

3、Equals()与&ldquo;==&rdquo;等价,静态或实例Equals,返回相等还是不等(true/false).

string str2 = "I am very happy!!";
string str3 = "I am very happy!!";

Console.WriteLine(str2.Equals(str3));//True
Console.WriteLine(str2 == str3);//True

15、字符串的复制

(1)、String.Copy(str):参数str为要复制的字符串,它回返回一个与该字符串相等的字符串 
(2)、SreStr.CopyTo(StartOfSreStr, DestStr, StartOfDestStr, CopyLen):它必须被要复制的字符串实例调用,它可以实现复制其中某一部分到目标字符串的指定位置

string s = "Hello World";
string s1 = String.Copy(s);
Console.WriteLine(s1);//Hello World

char[] s2 = new char[20];
s.CopyTo(2, s2, 0, 8);
Console.WriteLine(s2);//llo Worl000000000000000000000000

16、判断是否是已某种字符串开始或者结束

string s = "Hello World";
Console.WriteLine(s.StartsWith("He")); //  True
Console.WriteLine(s.EndsWith("He")); //  False

17、判断字符是否为null或者为空,返回值为bool;

string s = "Hello World";
string s2 = null;
Console.WriteLine(string.IsNullOrEmpty(s)); // False
Console.WriteLine(string.IsNullOrEmpty(s2)); //  True

二、char字符。

1、Char的表示方法:

  • 字面法:char a=&rsquo;x&rsquo;

  • 十六进制法:char a=&rsquo;\x0058&rsquo;

  • 显示转换整数:char a=(char)88

  • Unicode形式:char a=&rsquo;\u0058&rsquo;

2、转义字符:

  • \n =\u000a 换行符

  • \t =\u0009 制表符

  • \r =\u000d 回车符

  • \&ldquo; =\u0022 双引号

  • \' =\u0027 单引号

  • \\ =\u005c 反斜杠

  • \b =\u0008 退格符

3、char的静态方法:

  • char.IsDigit():是否为十进制数字

  • char.IsNumber():数字

  • char.IsLetter():字母

  • char.IsLetterOrdigt():字母或数组

  • char.IsUpper()/IsLower():大小写字母

  • char.IsPunctuation():标点符号

  • char.IsSymbol():符号字符

  • char.IsControl():控制字符

  • char.IsSeprator():分隔符

  • char.IsWhiteSpace():空白字符

  • char.GetNumberialValue():获取数字值

  • char.ToUpper()/ToLower():更改大小写

来源:https://www.cnblogs.com/springsnow/p/9428657.html

标签:C#,字符串,String,字符,Char
0
投稿

猜你喜欢

  • Android4.4 WebAPI实现拍照上传功能

    2023-08-17 00:46:21
  • Java实现浏览器端大文件分片上传

    2021-09-17 09:20:26
  • spring boot动态切换数据源的实现

    2022-04-20 14:17:03
  • 解决本机安装的JDK8,启动IDEA2019没反应的问题(开发工具)

    2023-08-12 23:29:11
  • 快速定位Java 内存OOM的问题

    2022-05-26 00:19:38
  • java时间戳转日期格式的实现代码

    2023-08-07 21:44:31
  • Android 获取drawable目录图片 并存入指定文件的步骤详解

    2021-11-01 07:04:48
  • 在Android界面上显示和获取Logcat日志输出的方法

    2023-02-19 20:02:19
  • Android编程实现定时发短信功能示例

    2021-12-29 08:24:17
  • Java Spring框架的注解式开发你了解吗

    2022-12-14 23:43:18
  • Java多线程通信:交替打印ABAB实例

    2022-04-08 06:57:28
  • 一文详解Java中Stream流的使用

    2021-08-23 11:54:51
  • Spring Boot多个定时任务阻塞问题的解决方法

    2023-09-20 11:43:36
  • Maven项目读取resources文件路径问题解决方案

    2023-04-21 15:05:11
  • 基于SpringBoot+Redis的Session共享与单点登录详解

    2023-09-22 18:13:48
  • 浅析Disruptor高性能线程消息传递并发框架

    2023-02-26 14:09:01
  • SpringCloud Finchley+Spring Boot 2.0 集成Consul的方法示例(1.2版本)

    2023-09-02 13:07:36
  • C# 通过 oledb 操作Excel实例代码

    2022-12-22 04:27:49
  • Java annotation元注解原理实例解析

    2022-09-08 00:42:45
  • SpringBoot基于Actuator远程关闭服务

    2022-06-24 21:36:37
  • asp之家 软件编程 m.aspxhome.com