今日の句をで実装します。 Javaには4つの条件をすべて組み合わせて、それを私の要求を満たす単一の条件として書く方法がありますか?たとえば、はどのようにJavaで、私はこのコードを書くことに出くわした
if(fieldName IN ("Name", "ID", "password", "email"){
//do something. .
}
.
.
.
これを達成する方法や回避策はありますか?
今日の句をで実装します。 Javaには4つの条件をすべて組み合わせて、それを私の要求を満たす単一の条件として書く方法がありますか?たとえば、はどのようにJavaで、私はこのコードを書くことに出くわした
if(fieldName IN ("Name", "ID", "password", "email"){
//do something. .
}
.
.
.
これを達成する方法や回避策はありますか?
考えられる値のList
を定義し、必要な値がリストに存在するかどうかを確認できます。
List<String> fieldValues = Arrays.asList("Name","ID","password","email");
if(fieldValues.contains(fieldName)) {
}
ワンライナー:if(Arrays.asList("Name","ID","password","email").contains(fieldName)) { }
注String
の等価性をチェックするために==
を使用しないでください。
私はこれが最良の一行の回避策だと信じています。 。 –
頻繁に変更されない静的プロパティを使用している場合。これらのプロパティを同じキーと値としてマップに取り込むことをお勧めします。
if(someMap.get(fieldName)!=null)
{
//do something
}
else
{
//do something else
}
これらのプロパティをいくつかのファイルに書き込んで、プログラム起動時にPropertiesクラスを使用してロードして使用することもできます。
まず、このコードは間違っています。
if ("Name" == fieldName || "ID" == fieldName
|| "password" == fieldName || "email" == fieldName) {
==
を使用して文字列を比較することは、ほとんどの場合誤っています。
は、テストを書くための最も効率的な(正しい)道がある、と述べた:
switch (fieldName) {
case "Name": case "ID": case "password": case "email":
// do something
break;
default:
// do something else
}
これは、コンパイラは、それが最も効率的な方法であると考えるならば、ハッシュセットは、シーンを尻使用しますが、必要がありますセットは一度しか構築されません。より簡潔なソリューションでは、テストを行うたびに一時的なセット/リストを表すデータ構造を構築して破棄する可能性が最も高くなります。
私が知っている方法はありません。関数を定義して使用することは可能です。以下のコードを参照してください:
boolean stringInArray(String src, String[] strArray) {
if (strArray == null || src == null)
return false;
for (int i = 0; i < strArray.length; i++) {
if (src.equals(strArray[i]))
return true;
}
return false;
}
// Print false
System.out.println(stringInArray("John",
new String[] { "Name", "ID", "password", "email"}));
// Print true
System.out.println(stringInArray("ID",
new String[] { "Name", "ID", "password", "email"}));
あなたの文は 'if(false){...}'にするだけです。理由を理解するにはhttp://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-javaを読んでください。あなたの実際の質問に答えるために、Javaにはあなたが探している構文の種類はありませんが、[Set](http://docs.oracle.com/javase/8/docs/api/java/)を使うことができます。 util/Set.html)。 – ajb