这是我的代码
String itemName = "Daily 60k tube";
String name="";
if(itemName.matches(".*\\d+.*"))
{
itemName = itemName.substring(itemName.indexOf(" ") + 1);
itemName = itemName.substring(0, itemName.indexOf(" "));
name = itemName;
}
我在输出中需要60k作为我的名字.但它有异常崩溃.
这是个例外.
java.lang.StringIndexOutOfBoundsException: length=6; regionStart=0; regionLength=-1
at java.lang.String.startEndAndLength(String.java:298)
at java.lang.String.substring(String.java:1087)
我的输出应该是“60k”.请帮我解决这个问题.提前致谢.
最佳答案 你可以试试这个
String itemName = "Daily 60k tube";
String name="";
if(itemName.matches(".*\\d+.*"))
{
String[] array = itemName.split(" "); // Daily 60k tube
// array: {"Daily","60k","tube"}
for (String item : array) {
if (item.matches(".*\\d+.*")) {
name = item;
}
}
}
编辑您也可以用此替换该行
(item.matches(".*\\d+.*" + "k")
所以它看起来像
String[] array = itemName.split(" "); // Daily 60k tube
// array: {"Daily","60k","tube"}
for (String item : array) {
if (item.matches(".*\\d+.*" + "k") {
name = item;
}
}
希望这可以帮助