假设以下字符串:
String value = "161207CAD140000,0";
如何获取第一个char的索引和子串CAD
的最后一个char的索引
请注意,子串的大小可能会从2,3或其他字符更改,我希望解决方案是动态的。
答案 0 :(得分:3)
您可以使用String.indexOf(String str)
函数返回“CAD”的起始索引。然后在返回的值中添加一个小于String长度的值,这将是你的最后一个字符索引“CAD”。
这样的事情:
String value = "161207CAD140000,0";
String str = "CAD";
String datePart = value.substring(0, value.indexOf(str)); // for finding the date part
String amountStr = value.substring(value.indexOf(str) + str.length()); //for finding the amount part
System.out.println(datePart +" "+amountStr);`
现在假设String“CAD”是动态的,你不知道它将具有什么价值,在这种情况下,最好使用正则表达式。请参阅下面的代码段:
String value = "161207CAD140000,0";
String patt = "[\\d,]+";
Pattern pattern = Pattern.compile(patt);
Matcher matcher = pattern.matcher(value);
while(matcher.find()){
System.out.println(matcher.group());
}
如果有任何问题,请在评论中告诉我。希望它有所帮助。
答案 1 :(得分:2)
这可以完成任何字符串的工作。
String value = "161207CAD140000,0";
String searchedString = "CAD"
int firstIndex = value.indexOf(searchedString);
int lastCharIndex = firstIndex + searchedString.length();
答案 2 :(得分:0)
String类中有针对此类要求的方法。您可以使用indexOf和lastIndexOf方法获取位置。 e.g
int index = value.indexOf("C"); //This returns 6
int lastIndex = value.lastIndexOf("D"); //this returns 8