JDK中提供的字符串操作
- 字符串基本操作主要包括三部分:求长、定位、替换
- 求长操作使用length()方法即可返回字符串的长度:
"".length()
- 定位操作包括两种:一种是根据下标定位字符:
"".charAt(int index)
,一种是根据字符定位其下标:"".indexOf(String str)
、"".indexOf(int char,int fromIndex)
等。 - 替换操作:
"".replace(char oldChar,char newChar)
、"".replace(CharSequence target,CharSequence replacement)
、"".replaceAll(String regex,String replacement)
、"".replaceFirst(String regex,String replacement)
。
- 字符串比较操作
-
"".compareTo(String anotherString)
比较规则:1.如果字符串相等则返回0。 2.如果字符串不等,则比较两个字符串的第一个字符,返回的是其ASCII码的差值,如果第一个字符也相同,则依次类推,比第二个。3.当有一方比较完,而另一方没比较完时,比较字符串的长度。 -
"".compareToIgnoreCase(String anotherString)
,这是比较忽略了字符串的大小写。
- 字符串拼接操作
- 利用连字符
String a = "abc";
String b = "def";
System.out.println(a+b);
------
结果:abcdef
- 利用concat()函数
String a = "abc";
String b = "def";
System.out.println(a.concat(b));
------
结果:abcdef
- join操作(JDK1.8以后字符串集合转为字符串可以使用join()方法
List<String> stringList = new ArrayList<String>();
stringList.add("a");
stringList.add("b");
stringList.add("c");
System.out.println(String.join("", stringList));
System.out.println(String.join(",", stringList));
------
结果:
abc
a,b,c
- String–>List
String str = "abc";
List<String> stringList = Arrays.asList(str.split(""));
for(String item : stringList) {
System.out.println(item);
}
------
结果:
a
b
c
- 还有很多其他函数,如
startsWith()
、toUpperCase()
等,这里不再赘述。
Apache的StringUtils提供的操作
首先得导入apache的commons3,这里面包含了StringUtils这一工具,点击这里下载。
join操作:基本和String的join没有什么区别,但支持更多数据类型。
List<String> stringList = new ArrayList<String>();
stringList.add("a");
stringList.add("b");
stringList.add("c");
System.out.println(StringUtils.join(stringList,""));
System.out.println(StringUtils.join(stringList," "));
------
结果:
abc
a b c
------
List<Integer> integerList = new ArrayList<Integer>();
stringList.add(1);
stringList.add(2);
stringList.add(3);
System.out.println(StringUtils.join(integerList,""));
------
结果:
123
Google的字符串处理操作
点击这里下载所需要的依赖,我们使用的是Gogle Guava,不要选择android,而是jre。
- 初始化列表
List<Integer> integerList = Lists.newArrayList(123,456,789);
System.out.println(integerList);
------
结果:
[123, 456, 789]
- 驼峰命名转换
String str = "LOWER_CASE";
String str2 = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, str);
System.out.println("str : " + str);
System.out.println("str2 : " + str2);
------
执行结果:
str : LOWER_CASE
str2 : lowerCase