JDK中提供的字符串操作

  1. 字符串基本操作主要包括三部分:求长、定位、替换
  • 求长操作使用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)
  1. 字符串比较操作
  • "".compareTo(String anotherString) 比较规则:1.如果字符串相等则返回0。 2.如果字符串不等,则比较两个字符串的第一个字符,返回的是其ASCII码的差值,如果第一个字符也相同,则依次类推,比第二个。3.当有一方比较完,而另一方没比较完时,比较字符串的长度。
  • "".compareToIgnoreCase(String anotherString),这是比较忽略了字符串的大小写。
  1. 字符串拼接操作
  • 利用连字符
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。

  1. 初始化列表
List<Integer> integerList = Lists.newArrayList(123,456,789);
	System.out.println(integerList);
	------
	结果:
	[123, 456, 789]
  1. 驼峰命名转换
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