所以首先我想通过说这是一个Minecraft插件来澄清一些事情。所以我有一个方法来产生一些mob(你不知道它是什么mob),并给他们自定义名称。名称是基于数字的。但我的名字中也有一个字符序列。因此,例如,如果mob的名称是“355 Blaze”,它将返回一个int值355,并删除其余的。我应该怎么做?目前我使用子字符串,但它不起作用,因为如果数字超过9,它将仅返回第一个数字。
如果由空格分隔,请根据第一个空格的位置使用子字符串:
Integer mobId = new Integer(fullMobName.substring(0, fullMobName.indexOf(" ")));
只需使用正则表达式。
private final static Pattern p = Pattern.compile("\\d+");
static String firstNum(String s) {
Matcher m = p.matcher(s);
return m.find() ? m.group() : null;
}
您可以在替换方法中使用正则表达式
String s = "355 Blaze";
s.replaceAll("[A-Za-z\\s]+", "");
然后您可以强制转换为int。