簡體   English   中英

從 JTextArea 將文本存儲為 arraylist

[英]Storing text as an arraylist from JTextArea

我需要創建一個程序來將所有單詞存儲在一個數組列表中。 然后檢查文本字段中的用戶輸入,看看它是否以數字和標點符號以外的任何內容開頭。 否則將需要顯示錯誤並防止將字符串添加到 arraylist 並顯示適當的錯誤。

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> ,它是一個 class 成員變量,您可以在其中存儲您的單詞
  2. 處理按鈕單擊的事件處理程序。

事件處理程序應該:

  1. 解析文本字段中的字符串(使用getText() ,就像您已經使用的那樣)。
  2. 做你已經在做的錯誤檢查。
  3. 如果沒有遇到任何錯誤條件(因此為此添加else子句),則將單詞添加到文本區域(您已經在執行此操作)並將其添加到 ArrayList。

希望這可以幫助您更清楚地了解如何解決問題。 如果沒有,請發布您嘗試過的代碼示例以及您具體遇到的錯誤。

編輯:這是您的 if-else 錯誤處理代碼塊的一些偽代碼,假設您聲明了一個新的ArrayList以將您的話保存為 class 成員:

// 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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM