刷题常用之StringStringBuilder的常用方法以及转换

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刷题常用之StringStringBuilder的常用方法以及转换相关的知识,希望对你有一定的参考价值。

目录

一、前言

在我们刷题的时候字符串用得还是很多的,而JAVA中有三种字符串(String、StringBuilder、StringBuffer),那我们应该如何选择用那种字符串呢?一般情况都使用String,但是如果增删改操作很多建议用StringBuilder(线程不安全,效率高)。下面我总结了常用的字符串操作,不用去背,但是每个都要清楚有什么用,能在做题的时候用到,这些方法虽然也许不能提高程序的运行效率,但是能让我们写题的效率大大提高。
更新了目录,方便大家查找,如果有需要欢迎大家收藏。

二、String类常用方法

1. int length():返回字符串的长度

String s1 = "abc";
System.out.println(s1.length());	//3;

2. char charAt(int index): 返回某索引处的字符

System.out.println(s1.charAt(2));	//c;下标从0开始

3. boolean isEmpty():判断是否是空字符串

System.out.println(s1.isEmpty());	//false;

4. String toLowerCase():将 String 中的所字符转换为小写

//注意由于String的不可变性,其实该操作并没有改变s2本身
String s2 = "ABC";
String s3 = s2.toLowerCase();
System.out.println(s2);	//ABC
System.out.println(s3);	//abc

5. String toUpperCase():将 String 中的所字符转换为大写

System.out.println(s1.toUpperCase());	//ABC;

6. String trim():返回字符串的副本,忽略前导空白和尾部空白

String s4 = "  abc abc    ";
System.out.println(s4.trim());	//abc abc;

7. boolean equals(Object obj):比较字符串的内容是否相同

String s5 = new String("abc");
String s6 = new String("abc");
System.out.println(s5.equals(s6));	//true;

8. boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写

String s7 = new String("aBc");
String s8 = new String("abC");
System.out.println(s7.equals(s8));	//true;

9. String concat(String str):将指定字符串连接到此字符串的结尾。 等价于用“+”

System.out.println(s7.concat(s8));	//aBcabC;

10. int compareTo(String anotherString):比较两个字符串的大小

System.out.println(s7.compareTo(s8));	//-32;按字典序比较

11. String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。

String s7 = new String("0123456789");
System.out.println(s7.substring(2));	//23456789;

12. String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。

System.out.println(s7.substring(2, 4));	//23;

13. boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束

System.out.println("456123".endsWith("123"));	//true;

14. boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始

System.out.println("456123".startsWith("123"));	//false;

15. boolean startsWith(String prefix, int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始

System.out.println("456123".startsWith("123", 3));	//true;

16. boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true

System.out.println("123".contains("12"));	//true;

17. int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引

System.out.println("123123123".indexOf("12"));	//0;
System.out.println("12378".indexOf("789"));		//-1;

18. int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始

System.out.println("123123123".indexOf("12", 2));	//3;

19. int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引

System.out.println("123123123".lastIndexOf("12"));	//6;

20. int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索

System.out.println("123123123".lastIndexOf("12", 5));	//3;

21. String replace(char oldChar, char newChar):返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所 oldChar 得到的。

System.out.println("123123123".replace('1','3'));	//323323323;

22. String replace(CharSequence target, CharSequence replacement):使用指定的字面值替换序列替换此字符串所匹配字面值目标序列的子字符串。

System.out.println("123123123".replace("12","34"));	//343343343;

23. String replaceAll(String regex, String replacement):使用给定的 replacement 替换此字符串所匹配给定的正则表达式的子字符串。

24. String replaceFirst(String regex, String replacement):使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。

25. boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。

26. String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。

27. String[] split(String regex, int limit):根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中。

三、StringBuilder常用方法

1. append():添加到末尾,和String中"+"作用一样

StringBuilder s1 = new StringBuilder("123456");
s1.append("789");
System.out.println(s1);	//123456789;

2. delete(int start,int end):删除start到end(不包含)中间的字符串

StringBuilder s2 = new StringBuilder("123456");
System.out.println(s2.delete(1, 4));	//156;

3. replace(int start, int end, String str):替换start到end(不包含)中间的字符串成str

StringBuilder s3 = new StringBuilder("123456789");
System.out.println(s3.replace(1, 4, "000000"));	//100000056789;

4. charAt(int n ): 返回某索引处的字符

StringBuilder s4 = new StringBuilder("123456");
System.out.println(s4.charAt(3));	//4;

5. insert(int offset, xxx):在字符串第offset位置插入字符串xxx

StringBuilder s5 = new StringBuilder("123456");
System.out.println(s5.insert(3, "7"));	//1237456;

6. length(): 返回字符串长度

StringBuilder s6 = new StringBuilder("123456");
System.out.println(s6.length());	//6;

7. reverse():反转字符串

StringBuilder s1 = new StringBuilder("123456");
System.out.println(s1.reverse());//654321;

四、String与字符数组转换

1. 字符数组 --> 字符串

char[] a = {'1','2','3','4','5'};
//方式一:构造器String(char[])
String s = new String(a);
System.out.println(s);//12345;
//方式二:构造器String(char[],int offset,int length)
//从字符数组的下标offset开始,length个长度截取
String s1 = new String(a, 3, 2);
System.out.println(s1);//45;

2. 字符串 --> 字符数组

String s = "123456";
//方式一:char[] toCharArray();
char[] a1 = s.toCharArray();
for(char c : a1)
	System.out.print(c + " ");//1 2 3 4 5 6
//方式二:void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);
//从s字符串的srcBegin位置开始(包括)到srcEnd位置(不包括)所有的字符串
	//复制到字符数组dst中,从字符数组的下标dstBegin开始复制。
char[] a2 = new char[s.length()];
s.getChars(0, s.length(), a2, 0);
for(char c : a1)
    System.out.print(c + " ");//1 2 3 4 5 6

3. String–>StringBuilder

//构造器
String s = "123";
StringBuilder s1 = new StringBuilder(s);
System.out.println(s1);//123;

4. StringBuilder --> String

//方式一:String的构造器
StringBuilder s1 = new StringBuilder("123456");
String s = new String(s1);
System.out.println(s);//123456;

//方式二:toString()方法
StringBuilder s1 = new StringBuilder("123456");
String s = s1.toString();
System.out.println(s);//123456;

5. Integer(int) --> String

int x = 100;
//方式一:基本数据类型->String(最方便)
String s1 = x + "";

//方式二:String.valueOf(基本数据类型对象)
String s2 = String.valueOf(x);

//方式三:包装类.toString(对应的基本数据类型)
String s3 = Integer.toString(x);

6. String --> Integer (int)

//把字符串"100"转为int类型的100(必须只能是数字,否则会报错)
int num = Integer.parseInt("100"); 
System.out.println(num);//100;

以上是关于刷题常用之StringStringBuilder的常用方法以及转换的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE第08篇:API之StringStringBuilder

刷题常用之大数类数学类

刷题常用之集合集合工具类详解

刷题常用之集合集合工具类详解

刷题常用之包装类(Integer常用方法属性以及与String转换进制转换)

StringStringBuilder和StringBuffer