String part1=parts[0];
String part2=parts[1];
String part3=parts[2];
System.out.print(part3);
sasdasd ASD ASD ASD ASD ASD ASD ASD ASD asdasdasd ASD ASD ASD asdasdasdasd ASD DASD asdasdasdasdasdasdとしてASD asdasのDASDとして文字列のエラー
String part1=parts[0];
String part2=parts[1];
String part3=parts[2];
System.out.print(part3);
sasdasd ASD ASD ASD ASD ASD ASD ASD ASD asdasdasd ASD ASD ASD asdasdasdasd ASD DASD asdasdasdasdasdasdとしてASD asdasのDASDとして文字列のエラー
あなたは、配列の長さを確認することができます。
if (parts.length > 1) {
... // what to do if the string contains the delimiter
}
else {
... // what to do if the string does not contain the delimiter
}
if (string.contains("-")) {
parts= string.split("d|\\-");
String part1=parts[0];
String part2=parts[1];
String part3=parts[2];
}else{
parts= string.split("d");
String part1=parts[0];
String part2=parts[1];
}
for (int i = 0; i < parts.length; i++) {
System.out.println(parts[i]);
}
捕捉基を有する正規表現はString
を解析するために使用することができます。グループのString
がnull
であるかどうかを確認するだけで、個々のグループの存在をテストできます。例:
Pattern pattern = Pattern.compile("(\\d+)d(\\d+)([+-]\\d+)?");
for (String s : new String[] {
"2d6",
"3d8",
"4d6-2",
"4d6+9",
"2d6-10",
"2d6-1x9"
}) {
System.out.println(s);
Matcher m = pattern.matcher(s);
if (m.matches()) {
int i1 = Integer.parseInt(m.group(1));
int i2 = Integer.parseInt(m.group(2));
String summand = m.group(3);
int i3 = summand == null ? 0 : Integer.parseInt(summand);
System.out.println(MessageFormat.format("{0}D{1}+({2})", i1, i2, i3));
} else {
System.out.println("no match");
}
}
出力:
2d6
2D6+(0)
3d8
3D8+(0)
4d6-2
4D6+(-2)
4d6+9
4D6+(9)
2d6-10
2D6+(-10)
2d6-1x9
no match
私はそれは難しいあなたが 'のSystem.out.println(3)上のエラーを取得していることを信じることを見つけます。 '... – alfasin
アクセスする前に配列の長さを確認してください – Kelvin