[英]How to print multiple arrays of different types in Java?
How do i print out multiple arrays, with my code below i only get the double array printed out? 如何打印多个数组,下面的代码只能打印出双精度数组?
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);
}
}
}
you are assigning to Arraynavn where you are intending Arraytlf and Arraydes. 您将分配给打算将Arraytlf和Arraydes用于Arraynavn的地方。
Obviously this replaces anything you already put in that array. 显然,这将替换您已经放入该数组的任何内容。 Resulting in only the "double array" to be printed (which is in fact your string array). 结果仅打印“双精度数组”(实际上是您的字符串数组)。
When you correct the code you'll encounter some casting errors! 当您更正代码时,会遇到一些转换错误! Look at the Integer, Double and String classes how to resolve those. 查看Integer,Double和String类如何解析它们。
By the way, there's an easier way to print an array in Java: 顺便说一下,有一种更简单的方法可以用Java打印数组:
double[] array = {0.0, 1.0, 2.0}; System.out.println(Arrays.toString(array));
If you have a multidimensional array, eg 如果您有多维数组,例如
int[][] array = { {5, 2}, {6, 3} };
you need to use 'deepToString' instead 您需要使用“ deepToString”代替
System.out.println(Arrays.deepToString(array));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.