我创建了一个文本文件,该文本文件写入了在android应用的editText
框中写入的每个单词。我还尝试使用bufferedreader
读取文件的内容。问题是,我只想获得创建列表中最长的单词的输出,但是我似乎无法比较所有输入的字符串。我的谷歌搜索只提供了有关比较两个字符串的长度的信息。如何比较文本文件中每行的长度?谁能指导我下一步该怎么做?
我的代码如下所示:
try
{
File myFile = new File("/sdcard/logger.file");
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(
new InputStreamReader(fIn));
String aDataRow = "";
String aBuffer = "";
while ((aDataRow = myReader.readLine()) != null)
{
aBuffer += aDataRow + "\n";
}
show.setText(aBuffer);
myReader.close();
Toast.makeText(getBaseContext(),
"Done reading SD 'mysdfile.txt'",
Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
最佳答案
您可以使用java.util.Scanner,
try
{
File myFile = new File("/sdcard/logger.file");
Scanner scanner = new Scanner(myFile);
String bigWord = "";
while (scanner.hasNextLine()) {
Scanner wordScanner = new Scanner(scanner.nextLine());
while (wordScanner.hasNext()) {
String str = wordScanner.next();
if(str.length() > bigWord.lenght())
bigWord = str;
}
}
show.setText(bigWord);
Toast.makeText(getBaseContext(),
"Done reading SD 'mysdfile.txt'",
Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}