【问题标题】:Split string and store them into different parts of an instance field (Java)拆分字符串并将它们存储到实例字段的不同部分(Java)
【发布时间】:2021-08-15 02:23:56
【问题描述】:

我正在编写一个包含 txt 文件的代码,该文件是一个单词库

例如

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

就是这种格式

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

我需要做的就是将字符串拆分成不同的实例字段(类ex.private String wordType)

到目前为止,我所拥有的是根据实例字段将要打印的字符串拆分为 4 行的代码,但我不确定如何将每一行分配给类参数。

这是我的代码:

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+"]";
    }   
    
}    

【问题讨论】:

    标签: java arrays string object


    【解决方案1】:

    您需要将数组中的标记分配给类变量。您的构造函数的实现可以更新到下面以满足您的需要。

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

    还有一点。您可能想在拆分表达式的末尾添加一个空格,这样表示含义的标记就不会给您提供前导空格。

    【讨论】:

      【解决方案2】:

      将拆分的元素分配给字段:

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

      注意:我稍微更改了您的正则表达式,以从您的正则表达式作为提取术语的一部分留下的提取术语中删除前导/尾随空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-23
        相关资源
        最近更新 更多