一、字符串:

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, …., strn):将n个字符串连接,中间没有连接符。字符串连接也可以用 ‘+’ 来实现。

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时抛出“值不能为 null。参数名: String”异常。

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()与“==”等价,静态或实例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的表示方法:

  1. 字面法:char a=’x’
  2. 十六进制法:char a=’\x0058’
  3. 显示转换整数:char a=(char)88
  4. Unicode形式:char a=’\u0058’

2、转义字符:

  • \n =\u000a 换行符
  • \t =\u0009 制表符
  • \r =\u000d 回车符
  • \“  =\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():更改大小写

字符串String及字符Char的相关方法的更多相关文章

  1. C/C++中字符串String及字符操作方法

    本文总结C/C++中字符串操作方法,还在学习中,不定期更新. .. 字符串的输入方法 1.单个单词能够直接用std::cin,由于:std::cin读取并忽略开头全部的空白字符(如空格,换行符,制表符 ...

  2. Delphi的字符(Char),字符串(String),字符串指针(PChar),字符数组arrayofchar(来自http://delphi.cjcsoft.net/论坛)

    Delphi有三种类型的字符: AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉. WideChar这是2字节的Unicode字符. Char在目前相当于AnsiChar,但在De ...

  3. java字符数组char[]和字符串String之间的转换

    java字符数组char[]和字符串String之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 使用String.valueOf()将字符数组转换成字符串 void (){ cha ...

  4. String的charAt(int index)可用于遍历一个字符串的所有字符

    charAt(int index)遍历一个字符串的所有字符实例 String name = "Whatisjava?"; for (int i = 0; i < name.l ...

  5. 字符串赋值给字符指针(char *a="hello")的正确理解方式

    对于语句  char *a="hello"; 对于这个声明方式,会造成的误解是:声明了一个字符指针(它会指向一个位置),将“字符串”赋值给 指针表达式"*a"所 ...

  6. String空格删除和java删除字符串最后一个字符的几种方法

    1. String.trim()trim()是去掉首尾空格2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间复制代码 代码如下:Str ...

  7. C++中字符数组和字符串string

    字符数组 C++中字符数组用char str[]能够用来表示一个字符串. (1)   数组的大小和字符串的长度. 数组的大小一定要大于字符串的长度,由于系统会自己主动补上一个'\0'作为字符串的结束标 ...

  8. 字符串的比较【string和字符数组】

    无论是string 还是 字符数组的字符串比较函数,返回的都是字典序的大小.如 1234 和 5 比较时就是1234的字典序小于5,要想比较字符串表示的数字的大小,需要自己写函数比较

  9. Python中字符串String的基本内置函数与过滤字符模块函数的基本用法

    Python中字符串String的基本内置函数与用法 首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符 ...

随机推荐

  1. Win10上使用Linux Subsystem配置cuckoo sandbox

    原文连接:https://www.trustwave.com/Resources/SpiderLabs-Blog/Cuckoo--Linux-Subsystem--Some-Love-for-Wind ...

  2. linux编程之GDB调试

    GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能: 1 在程序中设置断点,当程序运行到断点处暂停 2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显 ...

  3. Spring定时(任务)刷新-quartz

    Quartz是一个完全由java编写的开源作业调度框架.他可以与J2EE.J2SE集成,用与处理定时任务.定时刷新的需求.此处使用为与Spring项目集成. 在SpringMVC项目中使用quartz ...

  4. Docker学习(二): 镜像的使用与构建

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  5. hdu 2049 考新郎

    假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能. 和之前那道题一样,是错排,但是要乘上排列数. 选对的人有C(N,M)个组合,将它们排除掉,剩下的人就是错排了 #in ...

  6. 鸟哥linux私房菜学习笔记 第二章知识点

    2.1 linux一切皆文件 2.2 磁盘分区 磁盘即文件 2.2.1 磁盘连接的方式与设备文件名的关系 模糊 1.正常的实体机器大概使用的都是 /dev/sd[a-] 的磁盘文件名,至于虚拟机环境下 ...

  7. js-js的不重载

    * 什么是重载?方法名相同,参数列表不同 - Java里面有重载 * js里面不存在重载! <html> <head> <title>World</title ...

  8. 牛客Wannafly挑战赛11E 白兔的刁难

    传送门 如果大力推单位根反演就可以获得一个 \(k^2logn\) 的好方法 \[ans_{t}=\frac{1}{k}\sum_{i=0}^{k-1}(w_k^{-t})^i(w_k^i+1)^n\ ...

  9. [HAOI2009]逆序对数列(加强)

    ZJL 的妹子序列 暴力就是 \(\Theta(n\times m)\) 如果 \(n,m \le 10^5\) ? 考虑问题的转换,设 \(a_i\) 表示 \(i\) 小的在它后面的数的个数 \( ...

  10. BAT脚本编写教程简单入门篇

    BAT脚本编写教程简单入门篇 批处理文件最常用的几个命令: echo表示显示此命令后的字符 echo on  表示在此语句后所有运行的命令都显示命令行本身 echo off 表示在此语句后所有运行的命 ...