我有一個string
,我想獲取它的第一個逗號,空格或句點。Android獲取字符串中的逗號,空格或句點
int word = title.indexOf(" ", idx);
這會得到第一個空間,我怎樣才能讓它從空間,逗號或句點中獲得第一個東西? 我嘗試過使用||
,但沒有奏效。
ex。
int word = title.indexOf(" " || "," || ".", idx);
我有一個string
,我想獲取它的第一個逗號,空格或句點。Android獲取字符串中的逗號,空格或句點
int word = title.indexOf(" ", idx);
這會得到第一個空間,我怎樣才能讓它從空間,逗號或句點中獲得第一個東西? 我嘗試過使用||
,但沒有奏效。
ex。
int word = title.indexOf(" " || "," || ".", idx);
獲取空格,逗號或點或第一次出現的索引;如果沒有人可以發現:
注意,您可以預編譯該模式並按需要重複使用它。
又見http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
還要注意的是,如果你想打破文本爲單個單詞,你可以/應該使用BreakIterator
代替!
你在做什麼不是有效的Java語法。用空格,逗號和句點使用indexOf()
方法,然後確定這3個值中最小的一個。
int a = title.indexOf(" ", idx);
int b = title.indexof(",", idx);
int c = title.indexOf(".", idx);
然後只是確定哪個是最小的。
更快的方法是編寫自己的方法。在幕後,indexOf只會遍歷所有字符。你可以做你自己手動
public static int findFirstOccurrence(String s) {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ',' || // period/space) {
return i;
}
}
return -1;
}
我從該行得到錯誤的布爾運算:如果(s.charAt(I)==「」 || //期/空間){ –
你不能只複製粘貼我的代碼而不閱讀它。我通過不寫出所有條件來節省時間/空間,而是用評論替換它。 – Kon
不幸的是,你不能使用的字符數組indexOf
,而不是你需要調用indexOf
三次,或者你可以匹配regex
,你所提供的代碼是無效的Java語法。這個符號||
是有條件OR
操作,你可以用它來執行像
if(x || y)
它是好的,但它找到最近的空間等問題,從字符串的開始,我如何使它從一個特定的開始(如從字符串的字符4)? –
如果你想從索引n開始,只需調用matcher.find(n)。 – isnot2bad
還有一件事,分隔符是什麼?我無法得到它。它是\\? 喜歡如果我想添加新的東西將如何?如何添加x? –