【问题标题】:multidimensional array bufferedreader多维数组缓冲读取器
【发布时间】:2014-02-23 11:01:42
【问题描述】:

如何使num1num2 合并为一个readLine?我的意思是,例如,如果我在问题num1 上输入数字 11,它将自动是 Mike。可能吗?这是代码。

import java.io.*;
class array {

    public static void main (String [] args) throws IOException {
        BufferedReader br = new BufferedReader (new InputStreamReader(System.in));

        String [][] names = {
              {"Mike", "Mateo"}, {"Darcy", "Yalong"}, {"Karlo", "Pilapil"},
              {"Naomi", "Balmaceda"}
        };

        int num1, num2;
        System.out.print("Enter a number from 1 to 4: ");
        num1 = Integer.parseInt(br.readLine());
        System.out.println("Enter another number, 1 or 2: ");
        num2 = Integer.parseInt(br.readLine());

        System.out.print(names[num1-1][num2-1]);

    }
}

【问题讨论】:

  • 你的意思是如果你输入1,而不是11,对吧?
  • 哦,我明白了,你想要两个第一个索引。

标签: java arrays multidimensional-array bufferedreader


【解决方案1】:

您可以输入字符串形式并将其转换为字符数组:-

char s[]=br.readLine().toCharArray();
int num1=Integer.parseInt(""+s[0]);
int num2=Integer.parseInt(""+s[1]);  

【讨论】:

    【解决方案2】:

    您可以使用 java.lang.Character.digit() 方法之一,而不是使用 Integer.parseInt() 并将字符转换为字符串:

    String line = ...;
    int num1 = Character.digit( line.charAt(0), 10 ); 
    int num2 = Character.digit( line.charAt(1), 10 );
    

    【讨论】:

      【解决方案3】:

      如果用户输入11,那么这将得到num1 = 1num2 = 1在一个readLine中的数据:

      String line = br.readLine();
      num1 = Integer.parseInt(""+line.charAt(0));
      num2 = Integer.parseInt(""+line.charAt(1));
      

      如果您的列表中选择器是多于一位的数字,您可能希望使用空格、逗号、分号等分隔符,然后拆分字符串。

      【讨论】:

      • parseInt 无法将 char 解析为 int,但其正确的语法是 parseInt(String str)。
      • 是的。我忽略了这一点。我编辑了将其转换为字符串的代码。它现在应该可以工作了。
      猜你喜欢
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2015-06-18
      • 1970-01-01
      • 2016-01-23
      • 2013-11-04
      • 2014-02-23
      相关资源
      最近更新 更多