0

由于我正在制作一个简单的 Mastermind 游戏,它将在控制台中播放,我的任务包括通过输入 sth 来启动游戏:“start 4 5 34356”。start 初始化游戏,4 是可能尝试猜测的次数,5 是要猜测的代码长度,34356 是代码本身。我用分隔符分割了字符串,但是如何将它的每个值保存到一个变量中,以便以后可以使用它们?这是我的代码:

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();
    }
}
4

2 回答 2

0

这个方法:public static void splitArray(){需要返回一个这样的字符串数组:

public static String[] splitArray(){

    ...your code
    return inputArray
}

然后在你的主要方法中:

String[] inputArray = splitArray();

stringParts 变量将保存输入数组。然后你可以用数组做你想做的事

如果您需要定义单个变量,您可以执行以下操作:

int numPossibleTried = Integer.parseInt(inputArray[1]);
于 2013-01-26T11:25:15.350 回答
0

如果您确定输入参数的数量和类型,您可能希望使用 Scanner 而不是 split。

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);
        }
}
于 2013-01-26T11:32:02.307 回答