2017-04-18 5 views
-2

startsWith()equalIgnoreCaseをjavaの文字列で同時に使用したいと思います。どうやってやるの?文字列javaでignorecaseとstartsWithを同時に使用する方法

+2

その簡単かつ可能。コードを表示する。 –

+0

あなたは何を試しましたか? –

+0

ちょうど記録のために:あなたの言葉を次回見る。我々はここで命令に従わない。だから、 "それを使う方法を教えて"実際には行っていない。 – GhostCat

答えて

3

要点:これらのメソッドは両方とも、ブールの結果を返します。彼らは、あなたがそれらを呼び出す文字列についてのyes/no情報を与えます。だからあなたはそれらを「同時に」呼び出すことはできません。あなたはとても...

をバックステップし、あなたが達成しようとするものを再考する必要があり、あなたがのためにを探してが何であるか、おそらくです:

if ("someString".toLowerCase().startsWith("bla")) { 

(とちょうどレコードの:ような何かをやってそれは実際には良い練習であり、ユーザに入力を求めるときのように、「はい」「はい」「YE」をすべて同じように扱いたいとします。toLowerCase()を呼び出すことは「正規化あなたの入力データをステップアップしてください。

0

GhostCat's answerは大丈夫かもしれませんが、大文字のテスト文字列では非効率です。toLowerCase()は確認したい文字列のコピーを作成するため、大部分は気にしません。

あなたはこの使用正規表現を行うことができます。prefixは毎回同じであれば、あなたは一度だけpatternをコンパイルし、それを再利用し続けることができ

Pattern pattern = Pattern.compile(
    Pattern.quote(prefix) + "[\\s\\S]*", 
    Pattern.CASE_INSENSITIVE); 
if (pattern.matcher(input).matches()) { 
    // ... 
} 

注意を。


また、接頭辞として同じ長さの部分文字列を抽出し、その上equalsIgnoreCaseを使って正規表現せずにそれを行うことができます。

if (input.length() >= prefix.length() 
    && input.substring(0, prefix.length()).equalsIgnoreCase(prefix)) { 
    // ... 
} 
関連する問題