我正在写一个简单的井字游戏,需要在轮到他们的时候接受用户输入。玩家应该简单地提供一组坐标来放置他们的令牌(1,1)到(3,3)。我应该能够接受输入为“2 1”或“2,1”或“2,1”。所以我需要能够获取他们的字符串输入并提取两个数字中的每一个,而不管分隔符如何,并使用它们将他们的令牌分配给3x3数组中的指定单元格。
主要的问题是只能利用我们已经学过的东西(这是Java的第一节)。这是构建Java程序的前七章,其中包括扫描程序、条件/逻辑、循环和数组。没有模式、匹配器、列表等。
有没有一种方法可以只使用String类、scanner或数组来实现这一点?
忘记添加“”将字符转换为字符串。
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个字符。
我们知道第一个位置是有效的,所以我们分配它immediately.We也知道第二个位置不能有效,所以我们跳过它(charAt(2)而不是charAt(1))然后我们检查第三个位置是否有效,如果不是,我们分配第四个位置。
祝你好运!
只要使用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);
}
}
}
我正在制作一个模拟制表方法(Quine McCluskey)的程序,并试图将字符串格式的输入转换为整数格式,最后再转换为字符串(二进制格式)格式。 编辑:我忘了包括这个方法…
问题内容: 我有阵列 转换为字符串: 串: 以及如何将此字符串转换回数组? 问题答案: 尝试我的stringToDeep()方法转换回Array。
我写了一段代码,其中我扫描了一个整数,假设是121,为了把它分成3个部分,我把它变成一个字符串,并尝试通过拆分再次转换它?有什么简单的方法可以让它变成这样吗?
我有一个这样的字符串 我需要提取每个部分。我已经解析了前三个字符串(“Anderson,T”,CWS,SS),但现在我需要提取123,我在这方面遇到了一些问题。我在前三个字段中使用的方法是使用line。分裂 但我不能用线条。使用整型数组拆分。有人能帮我吗? 谢谢
我在Firebase中有一个包含多个记录的集合,每个记录都包含一个名称和记录的“关键字”的字符串数组。下面的示例。
我试图获取任意长度的字符串[],并将其打印成字符串,最好使用字段分隔符。现在我有: 但是由于某种原因,它只是返回“第二个”值。我如何使它正确连接这些值? 另外,我可以使用来简化代码吗?谢谢