繁体   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