【问题标题】:Taking individual lists from a vertical array and storing them horizontally从垂直数组中获取单个列表并水平存储它们
【发布时间】:2021-05-12 07:40:28
【问题描述】:

我有一个一维字符串,所以 n x 1 其中每个字符串都是每行一列中的唯一数组,以 ArrayList 形式给出:

[x]
[y]
[z]

但是,我想知道在一般意义上如何在不知道数组或列表数量的情况下执行此操作。因此,必须实现 list.all(valueHere) 之类的东西。

预期输出 - 类似:

[x][y][z]

编辑: 本质上,也许一个 for 循环可以做到这一点: 从一个循环中选择各个列表,可能是根据它们的长度,然后将它们并排粘贴或水平存储为一个列表。

也许需要一个空数组,它使用那些来填充它们:

//step 1
[x]
[y]
[z]

//step2
[x][y]
[z]

//step3
[x][y][z]

//second example

/empty array
[][][]
//list
[x]
[y]
[z]

//step 1

[x][][]

[y]
[z]

//step 2
[x][y][]

[z]

//step 3
[x][y][z]

我已经设法得到了这个列表中的第一个元素,虽然不是所有的元素都会被替换:

String[] yourArr = new String[test.numInstances()];

for(int i = 0; i<test.numInstances();i++) {
    String  trueClassLabel = test.instance(i).toString(test.classIndex());
    s = new String[] {trueClassLabel};
    yourArr[i] = s[i];
    System.out.println(Arrays.deepToString(yourArr));
}          

输出:

[损失,空,空,空,空,空,空,空,空,空,空,空,空]

【问题讨论】:

  • 你可以像这样加入字符串数组:String.join(" ", t)。反向操作将是 split(" ")
  • 添加当前输出和预期输出
  • @Stackbeans 一句话,这个一维数组是一个水平数组。这取决于您如何解释代码和数据结构。
  • 一暗阵列中没有翻转?
  • @GhostCat 我已经更新了这个问题,而不是提出一个新问题。这就是我最初追求的。也许“重复的问题”不再适用?

标签: java arrays string matrix weka


【解决方案1】:

经过大量阅读和利用@GhostCat 提供的见解后,我设法弄清楚了我需要什么。

我首先必须创建一个空的虚拟数组:

String[] submit = null;

以及另一个包含实例数长度(或我之后的字符串长度)的虚拟数组

String[] yourArr = new String[test.numInstances()];

然后创建一个 for 循环,将 .arff 数据的类索引中的实例存储到一个数组中。然后将该数组存储到 ampty 数组yourArr 中,最后将此范围复制到另一个范围:

for(int i = 0; i<test.numInstances();i++) {
String  trueClassLabel = test.instance(i).toString(test.classIndex());
s = new String[] {trueClassLabel};
yourArr[i] = s[0];
submit = Arrays.copyOfRange(yourArr, 0, i);
}

然后将字符串打印为循环外的数组:

System.out.println(Arrays.toString(submit));

输出:

[输,输,输,平,赢,输,输,平,赢,赢,赢,赢]

【讨论】:

    猜你喜欢
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多