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

标签 java string

假设以下字符串:

String value = "161207CAD140000,0";

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

最佳答案

您可以使用 String.indexOf(String str) 函数,它将返回“CAD”的起始索引。然后将要在返回值中找到的字符串的长度减一,这将是“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);`

现在假设字符串“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());
}

如果有任何问题,请在评论中告诉我。希望对您有所帮助。

关于java - 如何获取字符串中第一个和最后一个字符的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41121218/

相关文章:

java - 从项目名称查找 api 中查找项目

java - 如何判断 JDBC 执行更改的行数

java - 如何让 Ant 将属性文件复制到类目录

java - 如何将arraylist转换为双引号中所有项目的字符串数组

java将字符添加到字符串中

c - 在 C 中减少十六进制格式以外的二进制数

java - 实例化Java泛型类对象的问题

java - 如何将日期对象的时间设置为零 (00/00/00)

c# - Entity Framework 查询中 string.Trim() 的行为

c# - 为什么 bigint 数字不与 c# CultureInfo 分割?