gpt4 book ai didi

Android Studio - 为什么字符串数组会导致我的程序停止?

转载 作者:行者123 更新时间:2023-12-01 19:07:53 24 4
gpt4 key购买 nike

我已经为此工作了一段时间了,我快要拔掉我的头发了!如果我用这个...

public void readFile() {

BufferedReader buffReader = null;
StringBuilder result = new StringBuilder();
try {
FileInputStream fileIn = openFileInput("VariableStore.txt");
buffReader = new BufferedReader(new InputStreamReader(fileIn));
String line;
while ((line = buffReader.readLine()) != null) {
result.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {

try {
assert buffReader != null;
buffReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}

String resultString = result.toString();
String[] controlString = resultString.split("$");
// String wb = controlString[4];
// String sb = controlString[5];

((Button) this.findViewById(R.id.wakeButton)).setText(resultString);
// ((Button) this.findViewById(R.id.sleepButton)).setText(sb);
// ((Button)this.findViewById(R.id.wakeButton)).setText(result);
// ((Button)this.findViewById(R.id.wakeButton)).setText(result);
// ((Button)this.findViewById(R.id.wakeButton)).setText(result);

}

Button.setText 可以与“resultString”或“result”配合使用,“result”是我输入的格式为 xxx$xxx$xxx$xxx$xxx 的字符串,因此当我使用 readFile() 读回它时,我想要使用 .Split 并将其放入数组“controlString”中,然后将数组元素分配给我的小部件,即 setText(controlString[0]);但如果我取消注释 String wb = controlString[4]; 行或 String sb = controlString[5];我的程序崩溃了。为什么数组元素在这里不起作用?这是我的 writeFile()...(效果很好。

公共(public)无效writeFile(){

BufferedWriter buffWriter = null;
String wb = ((Button)this.findViewById(R.id.wakeButton)).getText().toString();
String sb = ((Button)this.findViewById(R.id.sleepButton)).getText().toString();
String tb = ((EditText)this.findViewById(R.id.textHoursBetween)).getText().toString();
String ti = ((EditText)this.findViewById(R.id.textIncrementTime)).getText().toString();
String td = ((EditText)this.findViewById(R.id.textIncrementDays)).getText().toString();

String writeString = wb + "$" + sb + "$" + tb + "$" + ti + "$" + td;

try {
FileOutputStream fileOut = openFileOutput("VariableStore.txt", Context.MODE_PRIVATE);
buffWriter = new BufferedWriter(new OutputStreamWriter(fileOut));
try {
buffWriter.write(writeString);
} catch (IOException e) {
e.printStackTrace();
}

} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {

try {
assert buffWriter != null;
buffWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

最佳答案

我发现问题了...而不是这个:

String[] controlString = resultString.split("$");

我必须使用这个:

String[] controlString = resultString.split(Pattern.quote("$"));

关于Android Studio - 为什么字符串数组会导致我的程序停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29481497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com