Это очень странно ...
BufferedReader br = new BufferedReader(new InputStreamReader(openFileInput("file")));
String s;
while ((s = br.readLine()) != null) {
String[] sa = s.split("a");
String a = sa[0];
String b = sa[1];
String c = a + "the letter a was here" + b;
// Do something with String c...
}
Я получаю силу закрытия на линии "String b = sa [1];". java.lang.NullPointerException.
Мои «String s» в цикле содержат несколько символов «a», это не проблема.
«String a» ВСЕГДА правильно.
Но 'String b' всегда вызывает исключение.
Я объявляю переменные (sa, a, b, c) вне цикла, без помощи.
Нечетное, StringTokenizer имеет ОДНУ ТОЧНУЮ ПРОБЛЕМУ.
Может читать только первый токен / сплит ...
StringTokenizer st = new StringTokenizer(s, "a");
int x = st.countTokens();
String a = st.nextToken();
String b = st.nextToken();
String c = a + "the letter a was here" + b;
// Do something with String c...
... внутри одного и того же цикла.
ЖЕ ТОЧНАЯ ПРОБЛЕМА! «Строка а» является точной, когда система попадает в строку «Строка b», она выдает то же исключение / ошибку / принудительное закрытие.
Я даже проверяю значение int x только для того, чтобы убедиться, что есть несколько токенов, и, опять же, это не проблема.
ПОЧЕМУ в этом цикле while я могу получить доступ / читать / назначать / использовать первый разделенный / токен моей строки, который я разделил / токенизировал ???