簡體   English   中英

拆分字符串並將它們存儲到實例字段的不同部分(Java)

[英]Split string and store them into different parts of an instance field (Java)

我正在編寫一個包含 txt 文件的代碼,該文件是一個單詞庫

例如

V [ask%2:32:05::] [expect] require, ask

這是這種格式

wordType(noun, verb) [token] [word] meaning

我需要做的是將字符串拆分為不同的實例字段(class ex.private String wordType)

到目前為止,我所擁有的是根據實例字段將要打印的字符串拆分為 4 行的代碼,但我不確定如何將每一行分配給 class 參數。

這是我的代碼:

public class EachWord
{
    private String wordType;
    private String token;
    private String word;
    private String meaning;

    public EachWord(String str){

        String[] arr = str.split("\\] \\[|\\[|\\]");

        for (String a : arr)
            System.out.println(a);
            System.out.println(" ");

    }

    @return word
    */
    public String getWord(){
        return word;
    }


    @return meaning
    */
    public String getMeaning(){
        return meaning;
    }
    
    public String toString(){
        return "["+wordType+" - "+token+" - "+word+" - "+meaning+"]";
    }   
    
}    

將拆分的元素分配給字段:

String[] arr = str.split("\\] \\[| \\[|\\] ");

wordType = arr[0];
token = arr[1];
word = arr[2]
meaning = arr[3];

注意:我稍微更改了您的正則表達式,以從您的正則表達式作為提取術語的一部分留下的提取術語中刪除前導/尾隨空格。

您需要將數組中的令牌分配給 class 變量。 您的構造函數的實現可以更新到下面以滿足您的需要。

public EachWord(String str) {
    String[] arr = str.split("\\] \\[|\\[|\\] ");
    this.wordType = arr[0];
    this.token = arr[1];
    this.word = arr[2];
    this.meaning = arr[3];
}

還有一點。 您可能希望在拆分表達式的末尾添加一個空格,以便表示含義的標記不會給您提供前導空格。

暫無
暫無

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

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