Java 查找子字符串在字符串中的位置(非indexOf)
前 是否有类似于Java 查找子字符串在字符串中的位置(非indexOf),java,string,position,substring,Java,String,Position,Substring,前 是否有类似于str的方法。find(“abc”)将返回我1 并且str.find(“def”)将返回我2 java语言..像这样的东西怎么样 String str = "abc def ghi"; 免责声明:这根本没有效率。每次调用函数时,它都会从头开始拆分整个字符串 测试代码: int getIndex(String str, String substring) { return Arrays.asList(str.split("\\s+")).indexOf(substring)+
str的方法。find(“abc”)
将返回我1
并且str.find(“def”)
将返回我2
java语言..像这样的东西怎么样
String str = "abc def ghi";
免责声明:这根本没有效率。每次调用函数时,它都会从头开始拆分整个字符串
测试代码:
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"));
打印:
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"));
说明:
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"));
str.split(\\s+”)
按空格分隔字符串,并将每个部分放入数组中的一个位置
Arrays.asList
返回数组的ArrayList
indexOf(substring)
在ArrayList
中查找字符串的位置
+1
由于Java使用0索引,而您需要1索引。由于您不是请求子字符串的索引,而是请求子字符串所属的单词位置,因此没有此类内置方法可用。但您可以按空格字符分割输入字符串,读取split方法返回的列表中的每个项,并检查子字符串所属的列表项位置
如果您需要此代码,请告诉我。我认为没有用于此的本机函数。但是你可以自己写 似乎要根据空格字符拆分字符串
1
2
循环创建的数组。并返回索引+1(因为java有基于零的索引)
for(int i=0;i
如果要查找同一字符串的多个位置,请尝试此代码
for(int i = 0; i < parts.length; i++)
{
if(parts[i].equals(parameter))
{
return i + 1;
}
}
答案将返回indexValues=(2,7,12)。+1表示一行代码,但扩展代码可能会使OP更具可读性。@Marc将代码加长似乎是一种浪费。我希望添加的解释能让它足够可读。-1很好的解释,但是你总是需要在答案中显示代码,否则这只是一个很长的注释。谢谢你宝贵的反馈。我将保证这一点。@RGraham确信代码通常有助于更好地解释。但我不同意人们总是需要在答案中添加代码。OP指南也是一个很好的答案。