java - 字符串问题

标签 java string

我在使用字符串方面遇到问题和疑问。

我遇到的问题是读取文本文件中的一行。假设我的 .txt 文件中有“hello”一词,我只是想验证用户是否输入了相同的内容。

.txt 文件仅包含单词“hello”

这是代码。

String fileWord;

File filename = fileOpen.getSelectedFile(); // Open the .txt file
FileReader filereader = new FileReader(filename);
BufferedReader inputFile = new BufferedReader(filereader);

String input = JOptionPane.showInputDialog("Say hello");
fileWord = inputFile.readLine();

if (input == fileWord)
     System.out.println("They match!");

但是,这不起作用。我在 input 和 fileWord 上都执行了 System.out.println,它们看起来是相同的,但它们并非如此,因为 if() 语句不起作用。

另一个问题我的问题是,如果在 .txt 文件中,我有一行行“你好再见”,我该如何读取一个单词一次一行?例如,如果用户输入“hello”,则会在文本文件中找到它并返回“goodbye”。

编辑 我在我的程序中取得了进一步的进展,并遇到了另一个问题。每当用户输入一个单词时,如果在文件中找不到该单词,则假定将该单词写入新文件。在我的程序中,我使用循环来搜索文件以查找单词。当我输入文件中不存在的单词时,出现异常错误并且程序关闭。我不太清楚在哪里以及如何发现该单词不在文件中。

while (!input.equals(fileWord))
{
     fileWord = inputFile.readLine();
     String[] wordSplit = englishWord.split("\\s+", 2);
     fileWord = wordSplit[0];
     fileWord2 = wordSplit[1];
}

System.out.println("The opposite of " + fileWord + " is " + fileWord2);

此示例将在文本文件中找到“hello”并输出“goodbye”,效果很好。但是,如果我输入一些随机单词但它找不到它,我该怎么做才能继续将其添加到新文件中?我想我可以弄清楚如何写入文件......我只是无法无异常地正确退出循环。

最佳答案

使用equals()来比较字符串,而不是==:

if (input.equals(fileWord))

关于你的第二个问题,最简单的方法是读取整行,然后 split() 它。这将为您提供一个二元素字符串数组。您可以使用第一个元素进行比较,如果匹配则返回第二个元素:

String[] words = line.split("\\s+", 2);
// words[0] will contain "hello"
// words[1] will contain "goodbye"

关于java - 字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940093/

相关文章:

java - 使用任意 xml 文件验证 xml

c - 帮我找出错误?

php - 这是什么语言或格式?

java - 将字符串转换为整数时出现异常

字符串字段中的 Mysql 错误日期(数据)如何查找/验证?

java - strace: `dup2(A, B); close(B)` 有什么意义吗?

java - 如何在正则表达式中写可选词?

java - 在 while 循环中检查数据库值的替代方法

java - System.out 未刷新

C++从字符串中获取数字并进行计算