2016-04-15 18 views
-4

if文私が作ったが、それはあまりにも長い間そのような..- JavaのString.equal(String)メソッド

です:

if("WORDS".equals(object.string1) || "WORDS".equals(object.string2) || "WORDS".equals(object.string3) 
|| "WORDS".equals(object.string4) || "WORDS".equals(object.string5) || "WORDS".equals(object.string6) 
|| "WORDS".equals(object.string7) || "WORDS".equals(object.string8) || "WORDS".equals(object.string9) 
|| "WORDS".equals(object.string10)) { ......... } 

それ短い文の作り方を

+11

'set 'に 'string1..string10'を入れ、' set.contains( "WORDS") 'を使います。 –

+0

あなたの編集では、 'java.lang.Object'はこれらのフィールドを持たないのでコンパイルしないでください(' Object'はもはや 'java.lang.Object'を参照しないので)。 –

+0

投稿したコードは意味をなさない。実際の(コンパイル可能な)コードがありますか? – khelwood

答えて

1

あなたは可変個の引数を持つ関数を作成することができます。

static bool compareMultiStrings(String words, String ... stringi) { 
    if (words == null) return false; 

    for(String s : stringi){ 
    if (words.equals(s)) return true; 
    } 

    return false; 
} 

、その後場合は、あなたからそれを呼び出す:あなたの定数文字列、"WORDS"のためならば、最初の引数

if (
    compareMultiStrings(
    "WORDS", 
    object.string1, object.string2, object.string3, object.string4, 
    object.string5, object.string6, object.string7, object.string8, 
    object.string9) 
) 
{ ..... } 

。その他のパラメータはvarargsパラメータです。

2

この

static boolean equalsOr(String a, String... b) { 
    for (String s : b) 
     if (a.equals(s)) 
      return true; 
    return false; 
} 

をお試しください
if (equalsOr("WORDS", object.string1, object.string2, ...))