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)我怎么能拆分?
答案 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]