split方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
1.按空格分开
public static void main(String[] args) {
String a = "hello world wk";
String[] a1 = a.split(" ");
System.out.println("a1-->"+Arrays.toString(a1));
}
结果是:a1-->[hello, world, wk]
2.按 | 隔开
String a1="北京|北京市|海淀区|科技大厦";
String[] splitAddress=a1.split("\\|");
System.out.println(Arrays.toString(splitAddress));
结果是:[北京, 北京市, 海淀区, 科技大厦]
3按*隔开
String a1="北京*北京市*海淀区*科技大厦";
String[] splitAddress=a1.split("\\*");
System.out.println(Arrays.toString(splitAddress));
结果是:[北京, 北京市, 海淀区, 科技大厦]
4.按@隔开
String a1="北京@北京市@海淀区@科技大厦";
String[] splitAddress=a1.split("@");
System.out.println(Arrays.toString(splitAddress));
结果是:[北京, 北京市, 海淀区, 科技大厦]
二。多个标记隔开
String a1="北京^北京市@海淀区#科技大厦 wk";
String[] splitAddress=a1.split("\\^|@|#| ");
System.out.println(Arrays.toString(splitAddress));
结果是:[北京, 北京市, 海淀区, 科技大厦, wk]
下方是我在写算法时用到split的题目:
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。
class Solution {
public String reverseWords(String s) {
String [] a = s.trim().split(" ");
StringBuffer b = new StringBuffer();
for(int i = a.length - 1; i >= 0; i--){
if(a[i].equals("")){
continue;
}
if(i == 0){
b.append(a[i].trim());
}else{
b.append(a[i].trim()).append(" ");
}
}
return b.toString();
}
}