使用分隔符拆分字符串并保存值

时间:2013-01-26 11:20:32

标签: java string

由于我正在制作一个简单的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();
    }
}

2 个答案:

答案 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);
        }
}