【问题标题】:How to print multiple arrays of different types in Java?如何在 Java 中打印多个不同类型的数组?
【发布时间】:2009-09-09 12:05:10
【问题描述】:

如何打印出多个数组,下面的代码只能打印出双数组?

import javax.swing.JOptionPane;

public class Matriseoppgave 
{
  public static void main(String[] args)
  {
    JOptionPane.showMessageDialog(null, "Du skal nå skriv inn 3 navn");

    String getnavn1 = JOptionPane.showInputDialog("Skriv inn første navn ");
    String getnavn2 = JOptionPane.showInputDialog("Skriv inn andre navn ");
    String getnavn3 = JOptionPane.showInputDialog("Skriv inn tredje navn ");

    String[] Arraynavn;
    Arraynavn = new String[3];
    Arraynavn[0] = getnavn1;
    Arraynavn[1] = getnavn2;
    Arraynavn[2] = getnavn3;

    JOptionPane.showMessageDialog(null, "Du skal nå skriv inn 3 tlf nummer");

    String gettlf1 = JOptionPane.showInputDialog("Skriv inn første tlf nummer");
    String gettlf2 = JOptionPane.showInputDialog("Skriv inn andre tlf nummer");
    String gettlf3 = JOptionPane.showInputDialog("Skriv inn tredje tlf nummer");

    int[] Arraytlf;
    Arraytlf = new int[3];
    Arraynavn[0] = gettlf1;
    Arraynavn[1] = gettlf2;
    Arraynavn[2] = gettlf3;

    JOptionPane.showMessageDialog(null, "Du skal nå skriv inn 3 desimaltall");

    String getdes1 = JOptionPane.showInputDialog("Skriv inn første desimaltall");
    String getdes2 = JOptionPane.showInputDialog("Skriv inn andre desimaltall");
    String getdes3 = JOptionPane.showInputDialog("Skriv inn tredje desimaltall");

    double[] Arraydes;
    Arraydes = new double[3];
    Arraynavn[0] = getdes1;
    Arraynavn[1] = getdes2;
    Arraynavn[2] = getdes3;

    Matriseoppgave mat = new Matriseoppgave();
    mat.skrivutklasse(Arraynavn,Arraytlf,Arraydes);
  }  

  public void skrivutklasse(String[] Arraynavn, int[] Arraytlf, double[] Arraydes)
  {
    StringBuilder print1 = new StringBuilder (Arraynavn.length);
    StringBuilder print2 = new StringBuilder (Arraytlf.length);
    StringBuilder print3 = new StringBuilder (Arraydes.length);

    for(int i = 0; i < Arraynavn.length; print1.append (Arraynavn[i++] )) print1.append("\n");
    for(int i = 0; i < Arraytlf.length; print2.append (Arraytlf[i++] )) print2.append("\n");
    for(int i = 0; i < Arraydes.length; print3.append (Arraydes[i++] )) print3.append("\n");
    {
      JOptionPane.showMessageDialog(null, "Array: \n" + print1 + print2 + print3);
    }
  }
}

【问题讨论】:

  • hvis du skriver paa dansk,kan ikke forstaar hvad du skriver 的 der er mange 人!最好用英语进行所有编码,尤其是变量名 - 这样您就会习惯于进行国际合作。
  • 呵呵.. 显然我会读丹麦语。

标签: java arrays


【解决方案1】:

您正在分配给 Arraynavn 您打算使用 Arraytlf 和 A​​rraydes 的位置。

显然,这会替换您已经放入该数组的任何内容。导致只打印“双数组”(实际上是您的字符串数组)。

当您更正代码时,您会遇到一些转换错误!查看 Integer、Double 和 String 类如何解决这些问题。

【讨论】:

    【解决方案2】:

    顺便说一句,在 Java 中打印数组有一种更简单的方法:

    double[] array = {0.0, 1.0, 2.0}; System.out.println(Arrays.toString(array));

    如果你有一个多维数组,例如

    int[][] array = { {5, 2}, {6, 3} };

    您需要改用“deepToString”

    System.out.println(Arrays.deepToString(array));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 1970-01-01
      相关资源
      最近更新 更多