Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android String.split()和/或StringTokenizer()在While循环中不工作_Android_String_Loops_Split_Token - Fatal编程技术网

Android String.split()和/或StringTokenizer()在While循环中不工作

Android String.split()和/或StringTokenizer()在While循环中不工作,android,string,loops,split,token,Android,String,Loops,Split,Token,这很奇怪 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 wa

这很奇怪

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...
}
在弦b=sa[1];,附近有一个力;。java.lang.NullPointerException。 循环中的“字符串”有多个“a”字符,这不是问题所在。 “字符串a”总是正确的。 但是字符串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...
…在同一While循环中。 同样的问题字符串a’是准确的,当系统到达“字符串b”行时,它抛出相同的异常/错误/强制关闭。 我甚至检查'intx'的值,只是为了确保有多个令牌,而且有,这也不是问题所在


为什么在这个While循环中,我只能访问/读取/分配/使用我已拆分/标记的字符串的第一个拆分/标记???

出于什么原因,当BufferedReader出现问题时,我只需从测试手机卸载应用程序,从头开始运行,问题就解决了。“文件”可能已损坏,我不确定。我已经两次遇到这个问题,卸载应用程序并重新运行修复了这两次问题。

您是否可以尝试使用不同的令牌而不是像@这样的令牌,并让我知道它是否在令牌器中工作,您是否在分配给b之前尝试使用st.hasMoreToken?这可能会有帮助。使用示例输入更新,当我尝试您的逻辑时,它工作正常。C.d:好主意,但我尝试了许多字符,结果相同。厄本:总是很好的做法,但我知道文件中的行,所以我知道有多少托克,所以不需要检查,顺便说一句,它仍然返回true。ThinkStip:我并不奇怪它对你来说很好,它为什么不起作用是没有道理的。我档案中的几行是:这个人有一个棒球,红色的车又快又安全,等等。。。我知道有多个代币,圣伯爵代币;始终返回4或5或比2多出多少。我不知道为什么我不能“访问”第二个令牌或数组:好的,这是我非常奇怪的答案。我删除了本节中的所有代码,然后复制并粘贴了我在此处发布的内容,现在就可以使用了。不知道为什么,目前不关心: