Разделить строку и добавить в массив символов? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть, например, следующий String ввод в мою программу:

"stringToRemoveCharsFrom, f d s a"

Я хочу разбить строку на следующие 2 строки:

1. the string before the comma - i.e. stringToRemoveCharsFrom
2. the string after the comma - i.e. f d s a

Я знаю, что Я могу сделать это с помощью метода .split() и добавить к array / arraylist.

Однако как тогда я могу определить, какая строка перед запятой, а какая после?

Т.е. я хочу затем создать массив символов из второй строки "f d s a", но как определить, из какой из 2 строк создать массив.

Ответы [ 2 ]

1 голос
/ 10 марта 2020
String str = "stringToRemoveCharsFrom, f d s a";

Первым в массиве является тот, который стоит перед запятой.

String[] vals = str.split(",");

System.out.println(vals[0]); // first part
System.out.println(vals[1]); // second part.

char[] s = vals[1].toCharArray(); // your character array.
System.out.println(Arrays.toString(s));
// or if you want an array of single char strings.
String[] st = vals[1].split("");
System.out.println(Arrays.toString(st));

В ваших массивах будут пробелы, если вы не хотите, чтобы вы могли делать следующее.

Строки

String[] charsNoSpaces = vals[1].trim().split("\\s+");
System.out.println(Arrays.toString(charsNoSpaces));

Символы

char[] charsNoSpaces2 = vals[1].replaceAll("\\s+","").toCharArray();
System.out.println(Arrays.toString(charsNoSpaces2));
0 голосов
/ 10 марта 2020

Первая строка (перед запятой) будет с первым индексом массива, возвращаемого функцией split (например, 0). Строка после запятой будет во втором индексе (например, 1). Что-то вроде

String str = "stringToRemoveCharsFrom, f d s a";
String[] tokens = str.split("\\s*,\\s*");
System.out.println("left = " + tokens[0]);
String[] charTokens = tokens[1].split("\\s+");
System.out.println("right = " + Arrays.toString(charTokens));

Какие выходы

left = stringToRemoveCharsFrom
right = [f, d, s, a]
...