我有一個名爲「message.txt」的文本文件,它使用緩衝區讀取器讀取。文本文件的每一行既包含「字」,在這個例子中給出的「意義」:讀取輸入文件的緩衝區讀取器代碼
「PS:小學」
其中PS - 字,小學 - 這意味着
當文件正在被讀取,每行被標記爲「:」的「詞」和「含義」。 如果「含義」等於給定的輸入字符串「f_msg3」,則在名爲「txtView」的文本視圖上顯示「f_msg3」。否則,它會在文本視圖中顯示「f_msg」。
但是「if條件」在此代碼中無法正常工作。例如,如果「f_msg3」等於「小學」,則文本視圖上的輸出必須是「小學」。但它輸出爲「f_msg」,但不是「f_msg3」。 (「f_msg3」不包含任何不必要的字符串。)
有人可以解釋我出錯的地方嗎?
try {
BufferedReader file = new BufferedReader(new InputStreamReader(getAssets().open("message.txt")));
String line = "";
while ((line = file.readLine()) != null) {
try {
/*separate the line into two strings at the ":" */
StringTokenizer tokens = new StringTokenizer(line, ":");
String word = tokens.nextToken();
String meaning = tokens.nextToken();
/*compare the given input with the meaning of the read line */
if(meaning.equalsIgnoreCase(f_msg3)) {
txtView.setText(f_msg3);
} else {
txtView.setText(f_msg);
}
} catch (Exception e) {
txtView.setText("Cannot break");
}
}
} catch (IOException e) {
txtView.setText("File not found");
}
這是什麼語言? –
使用的語言是java – zim
您的文本文件是否包含多行 - 其中一些顯示f_msg3和一些f_msg?在這種情況下,最後一行可能會決定txtView中顯示的內容。 – KDM