如何从字符串中获取数字

时间:2014-08-14 19:59:53

标签: java string

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我该怎么做? (请怜悯我只是一个菜鸟)

2 个答案:

答案 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);

希望这有帮助。