我目前正致力于String解析功能,突然间我发现了这个问题。例如:
String data = "1234567890JOHN F DOE";
String ID = data.substring(0,9);
String Name = data.substring(10, 19);
我想要ID的预期输出是"1234567890"
我获得的唯一字符仅为"123456789"
,"0"
已删除。
我可以使用任何功能代替substring(...)
吗?
答案 0 :(得分:3)
您获得"123456789"
因为substring(...)
方法中的结束参数不具有包容性,因此为了获得"1234567890"
,您需要使用data.substring(0,10)
:)
答案 1 :(得分:3)
如docs所述,substring(...)
的结束索引是输入的索引减一。你想要做的是:
String data = "1234567890JOHN F DOE";
String ID = data.substring(0,10);
String Name = data.substring(10, 20);
输出:
ID: 1234567890
Name: JOHN F DOE
答案 2 :(得分:0)
使用子字符串你可以简单地做: str.substring(0,10); 这是另一种方式:
String pattern="\\d+";
String text="1234567890JOHN F DOE";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(text);
while (m.find()) {
System.out.println(text.substring(m.start(), m.end()));
}
答案 3 :(得分:0)
让我们通过代码了解你需要执行的startIndex和endIndex:
String data = "1234567890JOHN F DOE";
String ID = data.substring(0,10);
String Name = data.substring(10, 20);
System.out.println("ID:" + ID);
System.out.println("Name: "+ Name);
<强> 输出: 强>
ID: 1234567890
Name: JOHN F DOE