如何获取字符串中第一个和最后一个字符的索引?

时间:2016-12-13 12:31:05

标签: java string

假设以下字符串:

String value = "161207CAD140000,0";

如何获取第一个char的索引和子串CAD的最后一个char的索引 请注意,子串的大小可能会从2,3或其他字符更改,我希望解决方案是动态的。

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