java - 在字符串中查找子字符串的位置(不是 indexOf)

标签 java string position substring

String str = "abc def ghi";

有没有像str.find("abc")这样的方法会返回我1 str.find("def") 会返回 2?

Java 语言..

最佳答案

这样的事情怎么样?

int getIndex(String str, String substring)
{
  return Arrays.asList(str.split("\\s+")).indexOf(substring)+1;
}

免责声明:这根本没有效率。每次调用该函数时,它都会从头开始拆分整个字符串。

测试代码:

String str = "abc def ghi";
System.out.println(getIndex(str, "abc"));
System.out.println(getIndex(str, "def"));

打印:

1
2

解释:

str.split("\\s+") 按空格拆分字符串并将每个部分放入数组中的一个位置。

Arrays.asList 返回数组的 ArrayList

indexOf(substring) 查找字符串在 ArrayList 中的位置。

+1 因为 Java 使用 0 索引而你想要 1 索引。

关于java - 在字符串中查找子字符串的位置(不是 indexOf),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844855/

相关文章:

java - 我如何启动音乐播放器

java - Java 中的 JSON 数组

java - 如何对字符串使用 putExtra 和 putIntent

c - 为什么 PSTR 类型在不同的 visual studio 项目类型上有不同的行为?

position - 如何在 graphviz 中强制节点位置(x 和 y)

java - 如何通过英文的 String.format 返回格式化的数字?

javascript - .split 通过将字符串转换为数组返回 NaN

ios - iOS8 上的新固定位置错误

javascript - ExtJS 4.2 - 最大化然后恢复后受约束的窗口未正确定位

java - 如何将 XML 布局包含到 Android 库中