由于我正在制作一个简单的Mastermind游戏,它将在控制台中播放,我的任务包括以这样的方式开始游戏:“start 4 5 34356”。在开始初始化游戏的地方,4是可能尝试猜测的次数,5是要猜测的代码的长度,34356是代码本身。我用分隔符拆分了String,但是如何将每个值保存到变量中,以后我可以使用它们?这是我的代码:
import java.util.Arrays;
public class ManualNumberGenerator {
public static String input;
public static String[] inputArray;
public static void splitArray() {
input = Terminal.askString("Enter some values: ");
inputArray = input.split("DELIMITER");
String code = Arrays.toString(inputArray);
System.out.println(code);
}
public static void main(String[] args) {
splitArray();
}
}
答案 0 :(得分:0)
此方法:public static void splitArray(){
需要返回一个String数组,如下所示:
public static String[] splitArray(){
...your code
return inputArray
}
然后在你的主要方法中:
String[] inputArray = splitArray();
然后,stringParts变量将保存输入数组。然后,您可以使用数组
执行所需操作如果您需要定义单个变量,可以执行以下操作:
int numPossibleTried = Integer.parseInt(inputArray[1]);
答案 1 :(得分:0)
如果您确定输入参数的数量和类型,则可能需要使用扫描仪而不是拆分。
Scanner sc = new Scanner(inputString);
String param1 = sc.next(); // start
int param2 = sc.nextInt(); // 4
int param3 = sc.nextInt(); // 5
int param3 = sc.nextInt(); // 34356
当然,您可能需要在实际字符串数之前检查,甚至在调用sc.next()之前检查sc.hasNext()。
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html 1
在回答NPE的评论时,也许你忘了宣布一些事情。
import java.util.Scanner;
public class ScanEx {
public static void main(String[] args) {
String str = "start 1 2 123455";
Scanner sc = new Scanner(str);
String param1 = sc.next();
int param2 = sc.nextInt();
int param3 = sc.nextInt();
int param4 = sc.nextInt();
System.out.println(param1 + "\t" + param2 + "\t" + param3 + "\t" + param4);
}
}