number out of string in java

后端 未结 6 1458
谎友^
谎友^ 2020-12-19 06:49

I have something like \"ali123hgj\". i want to have 123 in integer. how can i make it in java?

6条回答
  •  半阙折子戏
    2020-12-19 07:33

    int i = Integer.parseInt("blah123yeah4yeah".replaceAll("\\D", ""));
    // i == 1234
    

    Note how this will "merge" digits from different parts of the strings together into one number. If you only have one number anyway, then this still works. If you only want the first number, then you can do something like this:

    int i = Integer.parseInt("x-42x100x".replaceAll("^\\D*?(-?\\d+).*$", "$1"));
    // i == -42
    

    The regex is a bit more complicated, but it basically replaces the whole string with the first sequence of digits that it contains (with optional minus sign), before using Integer.parseInt to parse into integer.

提交回复
热议问题