split принимает регулярное выражение. Итак:
String[] ar = sb.toString().split("\\s+");
Строка \\s
является регулярным выражением для «любого пробела», и + равен: 1 или более. Если вы хотите разделить только пробелы (а не переводы строк, табуляции и т. Д.), Попробуйте: String[] ar = sb.toString().split(" +");
, что буквально: «разделить на один или несколько пробелов».
Этот прием работает практически для любого разделителя. Например, разделить запятыми? Попробуйте: .split("\\s*,\\s*")
, то есть: 0 или более пробелов, запятая, затем 0 или более пробелов (и регулярные выражения занимают столько, сколько могут).
Обратите внимание, что этот трюк НЕ избавляет от начальных и конечных пробелов. Но чтобы сделать это, используйте отделку. Собираем все вместе:
String[] ar = sb.toString().trim().split("\\s+");
и для запятых:
String[] ar = sb.toString().trim().split("\\s*,\\s*");