安卓 Java字符串。replaceAll返回不同的结果
这是我想要的,有一个字符串,比如,CHAR_27[19;50H
,我想从里面分别得到数字
// CHAR_27 = Character.toString( (char)27 );
// Or "\u001B"
String escapeString = "CHAR_27[19;50H";
String coord = escapeString.replaceAll("[^0-9;]", "");
List<String> coords = Splitter.on(";").splitToList(coord);
if (coords.size() != 2) continue;
rowIndex = Integer.parseInt(coords.get(0)) - 1;
colIndex = Integer.parseInt(coords.get(1)) - 1;
但有时它会抛出一个NumberFormatException, invalid integer CHAR_27[19
一般来说,它工作得很好
我的正则表达式有问题吗
或者我应该使用StringUtils.removePattern()
来获得更一致的结果
我从诺基亚N1和GT-810(劳力士)那里得到了这份报告。它们都是安卓5.1
我使用的是安卓API 24
# 1 楼答案
您发布的代码不会引发上述异常(如果输入是单行字符串)
但是,您的代码包含一些漏洞:
我建议使用: