【问题标题】:Input from scanner to multidimensional array to a string for output从扫描仪输入到多维数组到输出的字符串
【发布时间】:2020-09-07 13:54:51
【问题描述】:

类似编写的代码可以工作,但前提是只有一个数组。当我尝试使用多维数组时,它告诉我它不能从数组转换为字符串。

为什么会这样?

我可以从什么方向学习如何解决他的问题?

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String[][] sentence = new String[3][2];
        Scanner scaninput = new Scanner(System.in);

        for (int row = 0; row < sentence.length; row++) {
            for (int col = 0; col < sentence[row].length; col++) {
                System.out.println("Enter some words: ");
                sentence[row][col] = scaninput.nextLine();
            }
        }

        for (String sentences : sentence) {
            System.out.println(sentences + " ");
        }
    }
}

【问题讨论】:

  • for (String sentences : sentence) 将在您尝试将字符串数组转换为字符串时产生编译错误。与输入一样,您可以使用 for (String [] sentences : sentence) 进行内部 for 循环
  • 我确实根据 IDE 的建议尝试过,当我这样做时,我会得到这样的胡言乱语: [[Ljava.lang.String;@5caf905d [[Ljava.lang.String;@5caf905d [ [Ljava.lang.String;@5caf905d [[Ljava.lang.String;@5caf905d [[Ljava.lang.String;@5caf905d [[Ljava.lang.String;@5caf905d这就是为什么我想知道哪里出了问题。
  • 查看stackoverflow.com/questions/29140402/…了解更多关于乱码的信息

标签: java arrays string multidimensional-array output


【解决方案1】:

变量句是对数组数组的引用。您需要执行以下操作才能访问单个字符串。

for(String[] sentences : sentence){
    for(String s : sentences){
      \\Do something
    }
}

【讨论】:

  • 编辑:没关系,它有效。我不得不将打印中的变量更改为 s。我想我掌握了这个概念。谢谢你为我打破了这一点。我想我有点明白你在说什么。我基本上是将信息填充到一个包中,然后可以将其转换为一个简单的字符串。
  • 你能展示你在二维数组中放入了什么吗?如果我按原样运行代码,我看不到您提到的问题。
  • 我刚刚编辑了我的上一篇文章。有效。如果你能弥补我的理论问题吗?这是对它的正确理解吗?
  • 对不起。我不知道哪个问题是你的理论问题。你能在这里重复一遍吗?
  • 所以当我获取多维数组的元素并想提取该信息时,我必须将其降级为单个数组,然后将其降级为字符串?相同的技术是否适用于 int 和 double 等原语?那些可以从说 int[][] 降级并最终转换为字符串吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-23
  • 2012-12-06
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多