Java 2D数组列

Java 2D数组列,java,arrays,Java,Arrays,您好这只是一个简单的2d数组问题,我想在2列中显示我的2个数组元素,如下所示: 国家和城市 菲律宾马尼拉 韩国首尔 日本东京 以色列耶路撒冷 这是我的代码: public class ArrayExercise { public static void main(String[] args){ String[][] myArray = { {"Philippines", "South Korea", "Japan", "Israel"}, //

您好这只是一个简单的2d数组问题,我想在2列中显示我的2个数组元素,如下所示:

国家和城市
菲律宾马尼拉
韩国首尔
日本东京
以色列耶路撒冷

这是我的代码:

public class ArrayExercise {
    public static void main(String[] args){


        String[][] myArray = {
            {"Philippines", "South Korea", "Japan", "Israel"}, // Countries
            {"Manila", "Seoul", "Tokyo", "Jerusalem" } // capital cities
        };

        System.out.print( "Countries\tCities\n" );

        for( int row = 0; row < myArray.length; ++row ){
            System.out.print( "" );
            for( int col = 0; col < myArray[row].length; ++col ){

                System.out.print( "" + myArray[row][col] + "\t" );

            }
        }
        System.out.println( "" );
    }

}
公共类数组执行{
公共静态void main(字符串[]args){
字符串[][]myArray={
{“菲律宾”、“韩国”、“日本”、“以色列”},//国家
{“马尼拉”、“首尔”、“东京”、“耶路撒冷”}//首都城市
};
System.out.print(“国家/地区\t城市\n”);
对于(int row=0;row

但我无法将其显示在两列中。任何帮助都将不胜感激。谢谢大家:)

在通过
myArray[row]
循环后,您不会添加换行符。您需要在循环后添加以下内容以打印新行:

System.out.println();

通常,如果您想要一行结尾,不要调用
System.out.print(“\n”)
,而是调用
System.out.println()
System.out.println()
使用系统行结尾,它不一定是换行符(
\n
)。

在循环通过
myArray[row]
后,不添加换行符。您需要在循环后添加以下内容以打印新行:

System.out.println();

通常,如果您想要一行结尾,不要调用
System.out.print(“\n”)
,而是调用
System.out.println()
System.out.println()
使用系统行结尾,它不一定是换行符(
\n
)。

更新:-以下是在两列中打印它们的方法:-

    String[][] myArray = {
            {"Philippines", "South Korea", "Japan", "Israel"}, // Countries
            {"Manila", "Seoul", "Tokyo", "Jerusalem" } // capital cities
    };

    int j = 0;

    while (j < myArray[0].length) {
        System.out.printf("%-15s - %-15s", myArray[0][j], myArray[1][j++]);
        System.out.println();
    }
String[]myArray={
{“菲律宾”、“韩国”、“日本”、“以色列”},//国家
{“马尼拉”、“首尔”、“东京”、“耶路撒冷”}//首都城市
};
int j=0;
while(j
因为您希望为每列并行打印两行的值
您可以迭代列,并打印对应列的两行值

注意:-我使用了value
15
进行格式化。。通常,当字符串(国家或城市)的长度大于该值时,可能会给出错误的结果


要获得更多改进,您可以将
15
替换为最长的
国家字符串
和最长的
城市字符串
,从两行开始。

更新:-以下是将其分为两列打印的方法:-

    String[][] myArray = {
            {"Philippines", "South Korea", "Japan", "Israel"}, // Countries
            {"Manila", "Seoul", "Tokyo", "Jerusalem" } // capital cities
    };

    int j = 0;

    while (j < myArray[0].length) {
        System.out.printf("%-15s - %-15s", myArray[0][j], myArray[1][j++]);
        System.out.println();
    }
String[]myArray={
{“菲律宾”、“韩国”、“日本”、“以色列”},//国家
{“马尼拉”、“首尔”、“东京”、“耶路撒冷”}//首都城市
};
int j=0;
while(j
因为您希望为每列并行打印两行的值
您可以迭代列,并打印对应列的两行值

注意:-我使用了value
15
进行格式化。。通常,当字符串(国家或城市)的长度大于该值时,可能会给出错误的结果


为了获得更多的改进,您可以将
15
替换为最长的
国家/地区字符串
和最长的
城市字符串
,从两行开始。

首先,您需要找出第一列(国家/地区)中最长元素的长度,假设最大长度为5,你希望每一行都有一个前导空格。你还需要找到第二列的最大长度,这里是8。完成此操作后,可以使用
字符串.format
打印元素:

outputString = String.format("%1$6s %2$8s\n",country, city);
System.out.println(outputString);

格式化程序将第一个参数的宽度设置为
X
,以便获得正确的缩进。这将适用于任何长度的字符串。

首先,您需要找出第一列(国家)中最长元素的长度,假设最大长度为5,并且您希望在每行有一个前导空格。你还需要找到第二列的最大长度,这里是8。完成此操作后,可以使用
字符串.format
打印元素:

outputString = String.format("%1$6s %2$8s\n",country, city);
System.out.println(outputString);

格式化程序将第一个参数的宽度设置为
X
,以便获得正确的缩进。这将适用于任何长度的字符串。

先迭代列,然后迭代行如何

for( int col = 0; col < myArray[0].length; ++col ){
            for( int row = 0; row < myArray.length; ++row ){
                System.out.print(myArray[row][col]);
                System.out.print("\t");
            }
            System.out.println();
        }
for(int col=0;col
说明:

你的二维数组是这样的

  • 菲律宾[0,0]韩国[0,1]日本[0,2]以色列[0,3]

  • 马尼拉[1,0]首尔[1,1]东京[1,2]耶路撒冷[1,3]

但您的需求在这里[行,列]是上一个索引

  • 菲律宾[0,0]马尼拉[1,0]
  • 韩国[0,1]首尔[1,1]
  • 日本[0,2]东京[1,2]
  • 以色列[0,3]耶路撒冷[1,3]
因此,使用列迭代outerloop。 在innerloop中,使用行进行迭代并使用“\t”分隔。
在内部循环之后,我打印一个新行。

先迭代列,然后再迭代行如何

for( int col = 0; col < myArray[0].length; ++col ){
            for( int row = 0; row < myArray.length; ++row ){
                System.out.print(myArray[row][col]);
                System.out.print("\t");
            }
            System.out.println();
        }
for(int col=0;col