元
String str = "abc def ghi";
str.find("abc")
私に1を返し、私に2を返すような方法はありますstr.find("def")
か?
ジャバ言語..
How about something like this?
int getIndex(String str, String substring)
{
return Arrays.asList(str.split("\\s+")).indexOf(substring)+1;
}
Disclaimer: This isn't at all efficient. It splits the whole string from scratch every time the function is called.
Test code:
String str = "abc def ghi";
System.out.println(getIndex(str, "abc"));
System.out.println(getIndex(str, "def"));
Prints:
1
2
Explanation:
str.split("\\s+")
splits the string by white-space and puts each part into a position in an array.
Arrays.asList
returns an ArrayList
for the array.
indexOf(substring)
finds the position of the string in the ArrayList
.
+1
since Java uses 0-indexing and you want 1-indexing.
部分文字列のインデックスを要求するのではなく、部分文字列が属する単語の位置を要求しているため、そのような組み込みメソッドは使用できません。ただし、入力文字列をスペース文字で分割し、split メソッドによって返されたリスト内の各項目を読み取り、部分文字列が属するリスト項目の位置を確認できます。
このためのコードが必要な場合はお知らせください。
これにはネイティブ関数はないと思います。しかし、あなたは自分で書くことができます。
空白文字に基づいて文字列を分割したいようです。
String[] parts = string.split(" ");
作成された配列をループします。インデックス + 1 を返します (Java にはゼロベースのインデックスがあるため)
for(int i = 0; i < parts.length; i++)
{
if(parts[i].equals(parameter))
{
return i + 1;
}
}