java c string_JAVA中String的常规用法

1.Java中String的常规用法

String c_str;

字符串连接(注意事项):

使用 “+”,会将所有的变量转成String

例子:

String  c_str = "abc";

char  ch = 'A';  //ascii 为 65

int  x  =  1;

System.out.println(c_str + ch  + x); // "abcA1"

System.out.println(x  + ch  + c_str ); // "66abc"

System.out.println(x  + c_str  +  ch); // "1abcA"

低会转成高输出,Java中基础类型为int,byte + char 最后结果为int

字符串内容判断:

boolean  c_str.isEmpty();

如果字符串为空返回true,否则为false

字符串长度:

int  c_str.length();//返回字符串的长度

字符串的比较(包含字符大小写)(int):

c_str.compareTo(String x_ctr );

//如果x_ctr == c_str 返回0,x_ctr 为空,返回c_str长度

//如果x_ctr < c_str返回正数,否则返回负数

返回的值是从开头后的不匹配的第一个字符的差值

例子:

String c_str = "ABC123"; //A的ascii码65

String x_ctr = "AAC";

int  i  =  c_str.compare(x_ctr);

System.out.println("差值:" + i);

输出:1(字符串不相等,'B' - 'A' = 1)

字符串的比较(与字符大小写无关):

c_str.compareToIgnoreCase(String x_ctr);

字符串的连接:

(1)c_str  “+”  x_str

(2)c_str.concat(String x_str)

将String x_str连接到c_str的后面,返回String

字符包含另外字符串:

boolean  c_str.contains(String x_str);

如果字符串c_str包含x_str,返回true,否则为false

字符串相等(匹配)判断:

boolean  c_str.content_Equals(String  x_str);

boolean  c_str.matches(String  x_str);

如果字符串c_str字符和x_str字符一样,返回ture,否则为false

判断字符串的末尾:

boolean  c_str.endsWith(String  x_str);

如果字符串c_str的末尾是以x_str结尾,则返回true,否则false(有字符大小写之分)

字符串的比较(boolean):

boolean  c_str.equals(String  x_str);

boolean  c_str.equalsIgnoreCase(String  x_str); //忽略字符大小写

若c_str中的字符与x_str相同,返回true,否则为false

equals比较的是对象中的字符,不包含对象

而  "=="  则是比较对象是否引用的是两个实例

String  X1 = "test";//创建一个“test”对象,并将"test”放置在StringPool中

String  X2 = "test";//检查StringPool中是否存在"test",因为已经存在,所以X2引用相同的String,指向同一位置

String  s  =  new  String("hello world");//创建了两个对象

“hello world”已经是String类型,相当于“hello world”本来创建了一个对象放置在StingPool中,然后又new String创建另一个对象(多余)

首先在StringPool中创建"hello world"的字符串(第一个对象),通过字符串构造函数new  String()在堆上创建String对象(第二个对象),s将会引用这个String

String  S1  =  new  String("hello");  //创建一个对象

String  S2  =  new  String("hello");  //再创建一个对象

S1和S2属于不同对象,在不同的堆上,S1 == S2 返回false ,S1.equals(S2)返回true

String转byte数组:

byte[]  c_str.getBytes();

将String c_str转成byte数组

例子:

c_str = "0123";

byte[]  B;

B = c_str.getBytes();

System.out.println("B[0]的字节:" + B[0]);

输出:B[0]的字节:48(0的Ascii为48)

byte数组转String:

String c_str = new String(byte[]);

将byte[]数组转成String

例子:

byte[] b = new byte[]{'1','2','a','b'};

String  c_str = new String(b);

System.out.println("转换后字符串为:" + c_str);

输出:转换后字符串为:12ab

附加(统计数组中元素个数):

int[] A;//声明整型数组

int[] A = new int[count];//创建不初始化数组,需要指定大小

int[] a = new int[]{1,2,3,4,5};//创建并初始化数组

int len = a.length;//没有()

输出:len = 5

字符串中提取单个字节:

c_str.charAt(int index); //获取的是c_str中第index的字符(下标从0开始)

字符串中设置单个字节:

c_str.setCharAt(int index,char  ch); //设置c_str中第index的字符(下标从0开始)

字符串的截取(多个字节,返回字符数组):

void  c_str.getChars(int start_source,int end_source,char x[],int start_target);

start_source为原字符串的截取启始位置

end_source为原字符串的截取结束位置

char x[]为存放截取字符串的字符数组

start_target为截取后字符从字符数组下标开始存放

例子:

String c_str = "abcdef123"; //字符长度为9

char[]  x  =   new  char[c_str.length()];

c_str.getChars(1,5,x,0);

字符数组x中:x[0] = 'b',x[1] = 'c',x[2] = 'd',x[3] = 'e',x[4] = '';

从原String中取4个字符,下标1,2,3,4(b,c,d,e)

字符串的截取(多个字节,返回String):

String  c_str.substring(int begin,int  end);

截取字符串c_str中从begin下标到end下标的字符

例子:

String  c_str = "abcdef123";

String  x = c_str.substring(1,4);

结果:x = “bcd”

获取字符串的哈希码:

int  c_str.hashCode();

返回c_str的哈希码

字符串查找位置:

int  c_str.indexOf(String  x_str);//可以传递char字符char  x_char

查找x_str在c_str的首次出现的位置下标,找不到就返回-1

例子:

String c_str = "abcdefg";

String x_str = "cd";

int index = c_str.indexOf(x_str);

System.out.println("x_str第一次出现在c_str的位置:" + index);

输出:x_str第一次出现在c_str的位置:2

int c_str.indexOf(String x_str,int index);//可以传递char字符char  x_char

从index下标开始搜索并返回x_str在c_str出现的位置(下标不变,搜索启始位置从0变成index)

int c_str.lastIndexOf(String x_str);//返回字符x_str在c_str最后出现的位置

int c_str.lastIndexOf(String x_str,int index);//从下标index找x_str在c_str出现的最后位置

字符串联重复:

String c_str.repeat(int count);

String x = c_str.repeat(2);//将c_str重复2次组成一个String

字符串中字符的替换:

String  c_str.replace(char  oldchar,char  newchar);//可以传递String和char

将字符串中某个字符用新字符全部替换

String c_str.replaceAll(String  old,String  new);//只能传递String,支持正则表达式

将字符串中某个子字符串用新字符串全部替换

String  c_str.replaceFirst(String old,String  new);

将字符串中第一次出现的字符串替换

String c_str = "ABCDEA";

String x = c_str.replace('A','a');// x = "aBCDEa";

String x = c_str.replace("AB",“ab”);// x = "abCDEA";

常用正则表达式:

"\\d"    匹配所有的整数

"<.>"  匹配字符串中从""结束之间的内容

"<.>"匹配字符串中从""结束之间的内容,如果有两个<>,则将两个分别替换成对应的字符串

“[A-Z]”替换字符串中大写字母

“\\w”替换A-Z,a-z,0-9的字符

一般字符替换最好使用replce(),性能更优

字符串开头判断:

boolean  c_str.startWith(String  x_str);

如果c_str的开始以x_str字符串开始,返回true,否则为false

boolean  c_str.startWith(String  x_str,int  index);

如果从Index下标开始,c_str以x_str开始则返回true

字符串字符大小写转换:

String  c_str.toLowerCase();//字符串转小写

String  c_str.toUpperCase();//字符串转大写

字符串去除前面和末尾空格:

String  c_str.trim();//删除字符串前面和末尾的空格

字符串之间用特定字符串连接:

String  join(String connetstr,String  str1,String str2);

例子:String  c_str = "";//与c_str的字符串无关

c_str = c_str.join("---","abc","def");

System.out.println("c_str字符串:" + c_str);

输出:c_str字符串:“abc---def”;

备注:与c_str无关,且如果只有一个字符“abc”和连接字符,只会输出字符“abc”

字符串截取多个字符串:

String[]   split(String  x);

以字符串x作为划分,分成多个字符串

例子:

String  c_str = "ABC;123;DEF;456";

String[]  end_str;  //字符串数组存放结果

String  x  = ";" ;//以;作为分隔字符串

end_str = c_str.split(x);

输出:end_str [0]  = "ABC";

end_str [1]  = "123";

end_str [2]  = "DEF";

end_str [3]  = "456";

备注:可以通过c_str.indexOf(";",index) != -1找到c_str中有count个";",new String[count+1]

字符串反转:

StringBufferStringBuffer(c_str).reverse();

StringBuffer转String可以通过toString()的方式

例子:

String c_str  = "hello";

c_str = new StringBuffer(c_str).reverse().toString();

新建一个StringBuffer,将c_str转成StringBuffer,再调用反转reverse(),最后通过toString()转成String

输出:c_str = "olleh"

字符串的插入:

StringBuffer StringBuffer(c_str).insert(int index,String x_str);//也可插入字符char  ch

index需要插入的下标位置,x_str或者ch是插入的字符串或者字符

例子:

String c_str = "ABC";

c_str = new StringBuffer(c_str).insert(1,"12").toString();

输出:c_str  =  "A12BC"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值