java - 数组列表中的数组

标签 java arrays

在输入文件中,有 2 列:1) 词干,2) 词缀。在我的编码中,我将每一列识别为标记,即标记 [1] 和标记 [2]。但是,对于 tokens[2],内容是:ng ny nge

stem  affixes
----  -------
nyak  ng ny nge

我的问题是,如何声明tokens[2]下的内容?以下是我的编码片段:

try {
    FileInputStream fstream2 = new FileInputStream(file2);
    DataInputStream in2 = new DataInputStream(fstream2);
    BufferedReader br2 = new BufferedReader(new InputStreamReader(in2));

    String str2 = "";
    String affixes = " ";

    while ((str2 = br2.readLine()) != null) {

        System.out.println("Original:" + str2);

        tokens = str2.split("\\s");

    if (tokens.length < 4) {
            continue;
        }

    String stem = tokens[1];
    System.out.println("stem is: " + stem);

// here is my point

   affixes = tokens[3].split(" ");
   for (int x=0; x < tokens.length; x++)
    System.out.println("affix is: " + affixes);  

     }  

    in2.close();
  } catch (Exception e) {
    System.err.println(e);
  } //end of try2

最佳答案

您正在使用 token 作为数组 (tokens[1]) 并将 String.split("") 的值分配给它。所以它清楚地表明标记的类型是一个 String[] 数组。

接下来, 你试图在拆分 tokens[3] 后设置词缀的值,我们知道 tokens[3] 是 String 类型,因此对该字符串调用 split 函数将产生另一个 String[] 数组。

所以以下是错误的,因为您正在创建一个 String 而您需要 String[]

String affixes = " ";

所以正确的类型应该是这样的:

String[] affixes = null;

然后您可以继续为它分配一个数组。

affixes = tokens[3].split(" ");

关于java - 数组列表中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7072962/

相关文章:

java - Java中如何判断一个线程是否是主线程?

python - n维数组中唯一值的索引

c++ - 从c++中的函数返回二维数组

javascript - 在 JavaScript 中检查嵌套数组是否包含另一个嵌套数组的任何元素

java - 在 textlocal 上收到错误代码 80

java - DHTMLX 调度程序日期和时间未保存到数据库

Java 字符串比较

java - 如何创建JavaFX 16位灰度图像

c - 如何为 const char* 数组赋值并打印到屏幕

c - C 中的空字节和数组