public static void availiablePawnMoves(String unitName, String targetPos) {//unitname = "1A"
String onlyGridNumberForName; //here goes just the number (this could also be an int if possible)
System.out.println(onlyGridNumberForName);
我想知道如何从unitName获取数字,unitName字符串是" 1A"或者它可能是" 2A"所以它不能被硬编码为一个字符串。然后数字应该进入onlyGridNumberForName我该怎么做? (请怜悯我只是一个菜鸟)
答案 0 :(得分:1)
试试此代码
String intValue = unitName.replaceAll("[^0-9]", "");
您也可以试试这个。
String intValue = unitName.replaceAll("\\D+","");
答案 1 :(得分:0)
如果你能确保这个数字永远只有一个字符并且它会先出现,那么子字符串(参见http://docs.oracle.com/javase/7/docs/api/java/lang/String.html)可以得到你想要的东西:
String onlyGridNumberForName = unitName.substring(0,1);
如果你想把它作为一个整数,你可以使用Integer包装器中的parseInt来做到这一点:
int gridNumber = Integer.parseInt(unitName.substring(0,1));
如果您的电路板可能包含2位以上的数字,您可以创建一个while循环来确定扩展子字符串的数量:
int i = 0;
while (Character.isDigit(unitName.charAt(i))) {
i++;
}
// now i points to the first non-digit, which makes it the second arg to substring
String gridNumber = unitName.substring(0,i);
希望这有帮助。