我有一个字符串,它的值为name:score
。 我想将该字符串拆分成两个字符串,字符串a
的值为name
,字符串b
的值为score
。
正确的函数/语法是什么?
我已经查看了string.split
,但找不到将数据拆分成两个单独字符串的实际语法。
split
函数很适合这种情况:
String[] str_array = "name:score".split(":");
String stringa = str_array[0];
String stringb = str_array[1];
String[] s = myString.split("\\:"); // escape the colon just in case as it has special meaning in a regex
或者您也可以使用StringTokenizer。
a{1,2}
,它匹配 a
1 或 2 次。冒号本身没有任何特殊含义。 - Amal Murali使用:
String [] stringParts = myString.split(":");
split
返回原始字符串的子字符串,实际上并不移动任何字符数据。但你不应该关心这个。在Java中,字符串对象是不可变的,并且它们的内部数据对于您的代码是不可访问的,因此它对您以后的操作没有任何影响。 - Ted HoppString row = "name:12345";
String[] columns = row.split(":");
assert columns.length == 2;
String name = columns[0];
int score = Integer.parseInt(columns[1]);
Split函数可以将字符串分割成数组:
String input = "name:score";
final String[] splitStringArray = input.split(":");
String a = splitStringArray[0];
String b = splitStringArray[1];
$ cat Split.java
public class Split {
public static void main(String argv[]) {
String s = "a:b";
String res[] = s.split(":");
System.out.println(res.length);
for (int i = 0; i < res.length; i++)
System.out.println(res[i]);
}
}
$ java Split
2
a
b
private String extractName(String str) {
String[] split = str.split(":");
return str.replace(split[split.length - 1], "");
}
private int extractId(String str){
String[] split = str.split(":");
return Integer.parseInt(CharMatcher.DIGIT.retainFrom(split[split.length-1]));
}