У меня есть ниже кодSpliting строка по характеру, возвращаясь с неопределенными значениями
String str= new String("aaa,,bbb,,ccc,");
String[] strArray= str.split(",");
От этого я получаю ниже значений в strArray
strArray = [aaa,'',bbb,'',ccc];
Но я хочу ниже выхода
strArray = [aaa,null,bbb,null,ccc,null];
Я написал свою собственную функцию, чтобы сделать это, но я хочу знать, есть ли какой-либо стандартный метод, который может дать t его выход?
Если да, то пожалуйста, предложить
Если нет, то предложите, если какие-либо улучшения в приведенном ниже коде.
public List<String> splitStr(String str, char character) {
List<String> list = null;
if (StringUtil.isNotEmpty(str)) {
list = new ArrayList<String>();
int i;
char ch;
int characterIndex, loopStartingIndex = 0;
if (str.charAt(0) == character) {
list.add(null);
} else {
list.add(str.substring(0, str.indexOf(character)));
loopStartingIndex = str.indexOf(character);
}
int length = str.length();
for (i = loopStartingIndex; i < length; i++) {
ch = str.charAt(i);
if (ch == character) {
characterIndex = str.indexOf(character, i+1);
if (characterIndex == i+1 || characterIndex == -1) {
list.add(null);
} else {
list.add(str.substring(i+1, characterIndex));
i = characterIndex-1;
}
}
}
}
/*for (String s : list) {
System.out.println(s);
}*/
return list;
}
Edit:
Я тестировал код abc,,,,
строки с str.split(",")
методом, и я получил [abc]
, как выход, так что я думал, что aaa,,bbb,,ccc
даст мне 3 значения раздельным методом. Но это дает [aaa,'',bbb,'',ccc]
пропущенное окончание запятых.
Возможный дубликат метода Java split() позволяет удалить пустые строки в конце?] (Http://stackoverflow.com/questions/545957/java-split-method-strips-empty-strings-at-the-end) –
Да, мой ответ присутствует по этому вопросу. Извините, не удалось найти его. –