String类

Posted 超霸霸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String类相关的知识,希望对你有一定的参考价值。

String类

  • length()方法

返回字符串的长度

String str="asd";
//返回字符串的长度
int len=str.length();
System.out.println(len)

结果为:

3
  • compareTo()方法

String类中的compareTo()方法将返回两个字符串对象的比较结果,若相等,返回0。不相等时,从两个字符串第1个字符开始比较,返回第一个不相等的字符差;另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。

String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "cdfg";
System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1)
System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3)
System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
  • substring()方法

截取字符串

//第一种方法 substring(int start)
String str="hello world";
System.out.println(str.substring(1));	//ello world!
System.out.println(str.substring(3));	//lo world!
System.out.println(str.substring(6));	//world!

//第二种方法 substring(int start, int end)
String str = "hello world!";
System.out.println(str.substring(1, 4));	//ell
System.out.println(str.substring(3, 5));	//lo
System.out.println(str.substring(0, 4));	//hell

【注意】:第二种方法截取的范围是[ start,end )的半开半闭区间

  • indexOf()方法

indexOf()方法用于在String类的对象中查找子字符串,方法返回一个整数值,为子字符串的开始位置,若存在多个子字符串,返回数值最小的整数值;如果没有找到子字符串,返回-1

String str = "basabcdefghabcklmnabc";
System.out.println(str.indexOf("abc"));  //结果为3,为字符"abc"第一次出现的位置
System.out.println(str.indexOf("qqq"));  //结果为-1
  • lastIndexOf()方法

查找str子字符串最后一次出现的位置

String str = "abcdefghabcklmnabc";
System.out.println(str.lastIndexOf("abc"));  //结果为15,为字符"cde"最后一次出现的位置
System.out.println(str.lastIndexOf("qqq"));  //结果为-1
  • equals()方法

将该字符串与指定对象比较,返回true或false

String s1="aaa";
String s2="aaa";
String s3="bbb";
System.out.println(s1.equals(s2));	//true
System.out.println(s1.equals(s3));	//false
  • trim()方法

返回取出了前后空格的字符串

String s=" aa a ";
//去掉字符串的前后空格
System.out.println(s.trim());

输出结果为:

aa a
  • split()方法

将字符串按照str来分割,分割之后返回一个字符串数组

String str = "张三,李四,王五,赵六";
String[] names = str.split(",");
for (int i = 0; i < names.length; i++) 
{
    System.out.println(names[i]);
}

输出结果为:

张三
李四
王五
赵六

StringBuffer类

StringBuffer类和String类一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,所以在内存使用上,StringBuffer类要优于String

  • append()方法

append()方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接

StringBuffer stringBuffer = new StringBuffer("Hello");
stringBuffer.append("World!");
System.out.println(stringBuffer);

输出结果:

HelloWorld!
  • reverse()方法

reverse()方法将把当前字符序列反转后返回

StringBuffer stringBuffer = new StringBuffer("abc");
System.out.println(stringBuffer.reverse());

输出结果:

cba

StringBuffer对象和String对象互转

StringBufferString属于不同的类型,也不能直接进行强制类型转换,正确的转换方式如下:

String string1 = "Hello World!";
StringBuffer stringBuffer = new StringBuffer(string1);  //String转换为StringBuffer
String string2 = stringBuffer.toString();  //StringBuffer转换为String

以上是关于String类的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码片段存储在 mongodb 中?

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

片段内的网格适配器不起作用

如何理解这段代码片段中的两对括号?

从Asynctask ONPostExecute调用片段方法

elasticsearch代码片段,及工具类SearchEsUtil.java