我如何在java中分割输入值

时间:2016-10-21 07:19:39

标签: java regex string split

import java.util.Scanner;

public class Main_Code {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("please input dice value");
        String pattern;
        pattern = input.nextLine();
        String[] parts = pattern.split("[d][-]");
        String part1 = parts[0];
        String part2 = parts[1];
        String part3 = parts[2];

        System.out.println(
            "The Pattern is : " + pattern + "\n" +
            "Number of dice : " + part1 + "\n" +
            "Number of dice surface : " + part1 + "\n" +
            "Card numbers is : " + part3);

我会用扫描仪输入(**2d6-4, 3d6-3**)这种类型的值。现在我要拆分为2d6-4(骰子的数量是:2,骰子表面的数量是:6,卡号是4)我怎么能拆分?

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式并拆分为多个令牌:

 final String input = "2d6-4";
 final String[] tokens = input.split("-|d");
 System.out.println(Arrays.toString(tokens));

输出将是一个数组:

  

[2,6,4]

骰子,表面,卡片......

答案 1 :(得分:1)

您可以使用StringTokenizer。

import java.util.StringTokenizer;


public class TestString {
    public static void main(String[] args){
        String token="2d6-4,3d7-5";
        String[] splitStr=token.split(",");
        StringTokenizer parser=new StringTokenizer(splitStr[0], "d-");

        while(parser.hasMoreTokens()){
            Integer value=Integer.parseInt(parser.nextToken());
            System.out.println(" value ="+value);
        }
    }
}

输出 -

 value =2
 value =6
 value =4

答案 2 :(得分:0)

基本上你必须开发一个正则表达式来识别分割数据的所有标记。

在您的示例中,您要从d-分割数据。所以你可以这样做:

String[] tokens = "3d6-3".split("-|d");

然后令牌的内容如下:

  

[2,6,4]