java - 将 JTextArea 中的文本存储为数组列表

标签 java arraylist actionlistener actionevent

我需要创建一个程序来将所有单词存储在数组列表中。然后检查文本字段中的用户输入,看看它是否以数字和标点符号以外的任何内容开头。否则,它将需要显示错误并阻止将字符串添加到数组列表并显示适当的错误。

https://pastebin.com/8UwDm4nE

这是 ActionEvent 监听器,它包含用于检查的代码。我不太确定如何让它工作。

@Override
public void actionPerformed(ActionEvent e) {
    for(int i = 0; i < 1; i++) {
        String str = tf.getText(); // MUST BE STORED ON AN ARRAY LIST
        ta.append(str + "\n"); // Append the text on new line each

        if(str.startsWith(String.valueOf(nums))) { // Check input for a number at the start
            error.setText("Error: Word starts a number. Please try again!");
            error.setForeground(Color.RED);
            ta.append("");
        } else if (str.startsWith(String.valueOf(punct))) { // Check if input contains a punctuation at the start
            error.setText("Error: Word starts with an illegal character. Please try again!");
            error.setForeground(Color.RED);
            ta.append("");
        }
    }
}

最佳答案

我将稍微重新表述您的问题以进行澄清,如果我有误解,请纠正我。

您有一个文本字段和一个文本区域。您希望用户在文本字段中输入一个单词并提交。如果该单词以数字或标点符号开头,则向用户指示错误。否则,将其添加到文本区域(在新行上)和内部 ArrayList。

要解决此问题,您需要满足以下条件:

  1. ArrayList<String>这是一个类成员变量,您可以在其中存储单词
  2. 处理按钮点击的事件处理程序。

事件处理程序应该:

  1. 解析文本字段中的字符串(使用 getText() ,就像您已经使用的那样)。
  2. 执行您已经执行的错误检查。
  3. 如果没有遇到任何错误条件(因此为此添加 else 子句),请将单词添加到文本区域(您已经在这样做)并将其添加到 ArrayList。

希望这可以帮助您更清楚地了解如何解决该问题。如果没有,请发布您尝试过的代码示例以及您具体遇到的错误。

编辑: 这是 if-else 错误处理代码块的一些伪代码,假设您声明了一个新的 ArrayList以类(class)成员的身份遵守您的 promise :

// as class member variable
List<String> wordList = new ArrayList<>();

// word handler code
if (str starts with a number) {
    // handle error
} else if (str starts with punctuation) {
    // handle error
} else {
    ta.append(str + "\n");
    wordList.add(str);
}

关于java - 将 JTextArea 中的文本存储为数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58475196/

相关文章:

java - 在 Java 中使用翻转参数调用方法

java - 如何从java获取操作系统的CPU使用百分比

java - 从一组地理点 Mapbox 中找到边界框

Java Swing Timer无限循环

java - BO 和服务之间的区别?

java - 显示 ArrayList 中内容的列表

java - 添加到数组列表

java - 为什么我不断收到 [line : 75] Error:must implement the inherited abstract method java. awt.event.ActionListener?

java - 无法更改 ActionListener 内的 JButton ActionCommand

java - 将字符串转换为数组 List Java