C#基础知识学习(2)string类中的方法

1.Compare 比较字符串

用来比较2个字符串的长度大小和值是否相同,相同则返回0,当x比y小返回-1,否则返回1,如果长度相同,且值不同,则返回1,代码如下

public static void Main()

{

string x = "nihao";

string y = "nihao ma";结果:-1

//2.string x = "nihao ma";

//string y = "nihao";结果: 1

//3.string x = "nihao";

//string y = "nihao";结果: 0

//4.string x = "niliu";

//string y = "nihao";结果: 1

int result = string.Compare(x,y);

Console.WriteLine("结果:{0}",result);

Console.ReadKey();

}

2.String.CompareOrdinal 比较字符(还没有搞清楚,欢迎各位补充)

通过计算每个字符串中相应 System.Char 对象的数值来比较两个指定的 System.String 对象

public static int CompareOrdinal(string strA, string strB);

public static int CompareOrdinal(string strA, int indexA, string strB, int indexB, int length);

通过计算每个字符串中相应 System.Char 对象的数值来比较两个指定的 System.String 对象

3.Concat 连接字符串

public static string Concat(paramsstring[] values);

用来连接多个字符串实例

string x="你好";

string y=",欢迎你";

string z=string.Concat(x,y);

结果是:你好,欢迎你

Concat和+的不同:

Concat只能用来连接字符串,同时是方法名。

+号是运算符,可以连接多种类型。

4.CopyTo

public void CopyTo(拷贝intsourceIndex,char[] destination,intdestinationIndex,intcount);

这个方法理解起来有点难度,只是找到下面的例子

string dest = "Hello world";

string source = "Goodbye China";

char[] destArray = dest.ToCharArray();//将dest变成字符数组

source.CopyTo(8, destArray, 6, 5);//从source的第8个字符起复制5个字符并从destArray的第6个位置开始放

dest = new string(destArray);//这时dest为"Hello China"

Console.WriteLine(dest);

输出结果是:Hello China

5. IndexOf 索引字符的位置

定位字符

  • intIndexOf(charvalue)
  • intIndexOf(charvalue,intstartIndex)
  • intIndexOf(charvalue,intstartIndex,intcount)

定位字符串:

  1. intIndexOf(stringvalue)
  2. intIndexOf(stringvalue,intstartIndex)
  3. intIndexOf(stringvalue,intstartIndex,intcount)

在上述重载形式中,其参数含义如下:

Value:待定位的字符或者子串。

startIndex:在总串中开始搜索的起始位置。

Count:在总串中从起始位置开始搜索的字符数。

1)一个参数,索引字符第一次出现的位置,返回int

例子:

String str1 = "hello world";

String str2 = "abcd";

int x = str1.IndexOf("o");

Console.WriteLine("结果是{0}",x);

结果是4,也就是说o在字符串str1中的位置是4.

indexof(string str,int i)

2)二个参数,表示从i+1的位置开始索引。

String str1 = "hello world";

String str2 = "abcd";

int x = str1.IndexOf("o");

int y = str1.IndexOf("o",5);

Console.WriteLine("结果是{0},定索引位置的索引结果是{1}",x,y);

Console.ReadKey();

结果是:7

定位从第5个开始搜索,搜索到o的位置是7,返回int 是7

3)三个参数,确定开始和要查的几位数的位置

indexof(string str,int i,int j)

String str1 = "hello world or happy you ";

int z = str1.IndexOf("o",10,4);

Console.WriteLine("倒序索引结果{0}",z);

从第10位开始查找,查询2位,结果是12

6.LastIndexOf 索引最后的位置

定位最后一次的位置,如果是三个参数,就是从后往前索引。

7.IndexOfAny

表示索引字符数组中,最近的一个值的位置。

String str1 = "hello world or happy you ";

char[] b = { ‘e‘, ‘o‘, ‘l‘ };

int a = str1.IndexOfAny(b,5,15);

Console.WriteLine("结果是{0}}",a);

返回int为7

8.Insert 插入字符串

public string Insert(intstartIndex,stringvalue);

把一个字符串插入到另一个字符串的指定位置

String str1 = "hello world or happy you ";

String str2 = "abcd";

string str3 = str1.Insert(2, str2);

Console.WriteLine("insert功能插入结果{0}",str3);

这里是吧str2插入到str1中。插入位置2得到结果heabcdllo world or happy you

9.Join

在字符串数组中插入指定的字符

str5必须是字符串数组

string[] str5 = {"fsa","fasdf","fsaf"};

string str4 = string.Join("/", str5);

Console.WriteLine("Join功能结果{0}", str4);

输出结果fsa/fasdf/fsaf

10.PadLeft和PadRight

PadLeft是指在左面插入指定字符串总长度的char类型

string str1 = "hello world";

char str2=‘a‘;

string str3 = str1.PadLeft(12,str2);

Console.WriteLine("PadLeft功能插入结果{0}", str3);

结果是:ahello world

PadRight是指在右面插入指定字符串总长度的char类型

string str1 = "hello world";

char str2=‘a‘;

string str3 = str1.PadRight(12,str2);

Console.WriteLine("PadLeft功能插入结果{0}", str3);

结果是:hello worlda

11.Replace 替换字符串

public string Replace(char oldChar, char newChar);

public string Replace(string oldValue, string newValue);

string str1 = "hello world";

str1 = str1.Replace("d", "d!");

Console.WriteLine("Replace功能插入结果{0}", str1);

str1要更改的字符串,第一个参数是要更改的字符,第二个参数更新后的字符

结果是:hello world!

12.Split 分隔字符串

public string[] Split(paramschar[] separator);

string str1 = "hello world";

string[] str2 = str1.Split(‘w‘);

结果是:hello world! 字符串数组,需要用for遍历获取,第一个参数是old,第二个参数是new

如果想获取分割后的单个值,可以这样使用

string str1 = "hello world";

string str2 = str1.Split(‘w‘)[0];

Console.WriteLine("分割数据{0}",str2);

这样就相当于获取数组中第一个值hello,如果是[1],那么获取的就是orld。

13.remove移除指定位置字符串

public string Remove(int startIndex);

移除的位置从sartIndex到结束位置的字符串

public string Remove(int startIndex, int count);

移除startIndex位置到count位置的字符串

string str1 = "changed";

string str4 = str1.Remove(1, 2);

str4得到的是cnged,移除了第二位和第三位。

14.Substring这个方法用的比较多(截取字符串)

String.Substring (Int32)         从此实例检索子字符串。子字符串从指定的字符位置开始。

string s = "Hello C# World!";

string s1=s.Substring(3);

Console.WriteLine(s1);

结果是:lo C# World!    //s1为从s中截取的位置为3的字符以后的字符子串,表示从第4位开始截取字符。

String.Substring (Int32, Int32) 从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。

string s = "Hello C# World!";

string s1=s.Substring(3,2);

Console.WriteLine(s1);

结果是lo,后面一个参数限制了截取的位数。

时间: 2024-10-25 11:27:59

C#基础知识学习(2)string类中的方法的相关文章

String类中intern方法的原理分析

一,前言 ? 昨天简单整理了JVM内存分配和String类常用方法,遇到了String中的intern()方法.本来想一并总结起来,但是intern方法还涉及到JDK版本的问题,内容也相对较多,所以今天就弥补昨天缺失的知识点. 二,String.intern() ? 先来看下网上流行的关于intern()方法的示例代码: public static void main(String[] args) { String s = new String("1"); s.intern(); St

OC --(2)-- 基础知识分析对象,创建类,自定义初始化方法

1.分析对象 2 创建类(实例变量 方法) 3.创建对象 调用方法 结局问题 @property int age;//相当于声明getter setter 方法; @synthesize age ; //相当于实现getter setter 方法; @synthesize age=_age ;//会去访问_age; 实例变量的可见度;         [email protected]; 公共的 在类的内部和外部都可以进行访问(破坏了面向的对象的封装特性)         [email prot

【Java面试题】17 如何把一个逗号分隔的字符串转换为数组? 关于String类中split方法的使用,超级详细!!!

split 方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator],[limit])参数:stringObj   必选项.要被分解的 String 对象或文字.该对象不会被 split 方法修改.separator 可选项.字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符.如果忽 略该选项,返回包含整个字符串的单一元素数组. limit可选项.该值用来限制返回数组中的元素个数. 说明:split 方法的结果

String类中toCharArray()方法的用法

public char[] toCharArray() 该方法的作用是返回一个字符数组,该字符数组中存放了当前字符串中的所有字符 eg: 1 public class class6_3 2 3 { 4 5 public static void main(String args[]) 6 7 { 8 9 String s1=new String("我是中国人"); 10 11 char[] c=s1.toCharArray(); 12 13 System.out.println(&quo

string类中一些方法的使用

String s1: length函数的使用方法:s1.length(); charAt函数的使用方法:s1.charAt(int Index)获取指定位置的字符// getchars函数的使用方法:s1.getchars(int srcBegin,intsrcEnd,char[]dst,int dstBegin)将这个字符串中的字符复制到目标字符数组,其中srcbegin为要复制的第一个字符的位置,srcend为最后一个字符的位置-1,char[]dst 为目标字符数组,dstbegin拷贝的

解读STL的string类中各方法的使用场景

所在头文件:<string> 实现:typedf basic_string<char> string 所在命名空间:std 功能:标准string提供字节标准容器的接口,同事增加对字符串中单独的字符的操作.由于标准string是basic_string<char>的一种特化,只能针对char型,如果字符编码方式是多字节或者可变字符序列(eg:UTF-8)那么它仍然按字节去解读,而不是按照传入内容的编码方式. (1)成员函数number functions constru

String类中的常用方法

String类 一.转换成String方法 1.public String(); 空参构造 初始化一个新创建的 String 对象,使其表示一个空字符序列 2.public String(byte[] bytes); 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String 将97,97.99转成ascll码表对应的字符; 3.public String(byte[] bytes,int index,int length); 分配一个新的 String,使其表示字符数组参数

Java基础知识强化101:Java 中的 String对象真的不可变吗 ?

1. 什么是不可变对象?       众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的. 不能改变状态的意思是:不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变. 2. 区分对象和对象的引用 对于Java初学者, 对于String是不可变对象总是存有疑惑.看下面代码: 1 String s =

Java基础知识强化之集合框架笔记33:Arrays工具类中asList()方法的使用

1. Arrays工具类中asList()方法的使用 1 public static <T> List<T> asList(T... a): 把数组转成集合 注意事项: 虽然可以把数组转成集合,但是集合的长度不能改变. 2. 代码示例: (1) 1 package cn.itcast_03; 2 3 import java.util.Arrays; 4 import java.util.List; 5 6 /* 7 * public static <T> List<