2013-04-16 102 views
0

如何添加一個參數來檢查一個字符串是否包含一個引號?我試圖逃跑的字符,但它不工作包含引號java

words[i].contains() 

編輯:我不好,有一些未關閉的括號,做工精細現在

+5

'字[I]。載( 「\」 「);' – Shark

+1

不是'字[I]。載(」 \ 「」)'工作? – PermGenError

回答

3

你可以使用這樣的事情:

words[i].split("\"").length - 1 

這會給你的字符串中的數量"。因此,只需使用:

if (words[i].split("\"").length == 2) { 
    //do stuff 
} 
+0

爲什麼在要求'包含一個'時分割? – Shark

+0

@Shark因爲'contains'不能告訴你有多少。 OP說了一個。 – Doorknob

+2

爲什麼你使用拆分而不是正則表達式? –

5
words[i].matches("[^\"]*\"[^\"]*") 

那就是:任何非報價,報價,任何非引號。

2

您可以檢查是否存在第一個引號,然後檢查第二個引號是否存在。 它比使用匹配或分割快得多。

int index = words[i].indexOf('\"'); 
if (index != -1 && words[i].indexOf('\"', index + 1) == -1){ 
    // do stuff 
} 
+0

「快多快?」是的......約30納秒或10秒的增益。你永遠不會注意到這個區別 – Doorknob

0

要檢查數量或引用您還可以使用一個字符串的長度去除"後。

int quotesNumber = words[i].length() - words[i].replace("\"", "").length(); 
if (quotesNumber == 1){ 
    //do stuff 
}