从String到Int数组的整数

时间:2016-06-12 05:50:19

标签: java arrays string integer

我正在编写一个简单的tic tac toe游戏,需要在轮到他们时接受用户输入。玩家应该简单地提供一组坐标,用于将其令牌(1,1)放置到(3,3)。我应该能够接受输入为“2 1”或“2,1”或“2,1”。所以我需要能够获取他们的String输入并拉出两个数字中的每一个,无论分隔符如何,并使用它们将其标记分配给3x3数组中的指定单元格。

主要的问题是只能使用我们已经教过的东西(这是Java的第一季度)。这是构建Java程序的前七章,包括扫描程序,条件/逻辑,循环和数组。没有模式,匹配器,列表等。

有没有办法只使用String类,扫描程序或数组来实现这个目的?

2 个答案:

答案 0 :(得分:0)

只需使用String类,就可以使用String.split()来获取一个字符串数组,然后可以将其解析为整数

public class Example{

 public static void main(String []args){
     String str = "2 1";
     // first split the original string on a comma
     String[] str_arr = str.split(",");
     // if the length is one then there were no commas in the input, so split again on white space
     if (str_arr.length == 1){
         str_arr = str.split(" ");
     } 
     int[] int_arr = new int[str_arr.length];
     // assign the string array to an int array
     for (int i = 0; i < str_arr.length; i++){
         int_arr[i] = Integer.parseInt(str_arr[i]);
     }
    // output to console         
     for (int j : int_arr){
         System.out.println(j);
     }

 }
}

答案 1 :(得分:0)

更新

忘记添加“”以将char转换为String。

Scanner input = new Scanner(System.in);

String userInput;
String[] coordinates = new String[2];

char character;
int length;

userInput = input.nextLine();
length = userInput.length();

if(length > 2){
  coordinates[0] = "" + userInput.charAt(0);
  character = userInput.charAt(2);

  if(character != ',' && character != ' '){
    coordinates[1] = "" + character;
  }
  else{
    coordinates[1] = "" + userInput.charAt(3);
  }
}

说明:

我们使用数组来存储你需要的两个位置。

我们使用一个字符来存储输入位置的读数。

我们得到读取输入的长度。这是为了验证它是否正确。由于正确的输入应至少超过2个字符。

我们知道第一个位置是有效的所以我们立即分配。我们也知道第二个位置无效,所以我们跳过它(charAt(2)而不是charAt(1))然后我们检查第三个位置如果不是我们分配第四个位置,则有效。

古德勒克!