Ответ 1
Функция split
подходит для этого:
String[] str_array = "name:score".split(":");
String stringa = str_array[0];
String stringb = str_array[1];
У меня есть строка, которая имеет значение 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.
Использование:
String [] stringParts = myString.split(":");
String 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
что, если у вас есть что-то вроде этого: 1: 2 name = a: 1??
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]));
}