0

さて、私はこの問題を最小のifelse条件を使用して解決する必要があります。私の問題を説明しましょう。文字列の市、州、国が3つあるとします。次の形式で印刷する必要があります。

city,state,country

city = ""の場合は、

state,country

state = ""の場合は、次のようにする必要があります

 city,country

もしcountry=""なら

city,state

すべての文字列が""の場合、何も出力されないか、単に""である必要があります。これらの3つの文字列には、値があるか、nullではない ""が含まれている可能性があります。したがって、else条件を使用すると、この問題を解決する必要があります。 注:宿題ではありません。

4

4 に答える 4

10
StringBuilder sb = new StringBuilder ();
for (String s: new String [] {city, state, country})
{
    if (!s.isEmpty ())
    {
        if (sb.length () > 0) sb.append (",");
        sb.append (s);
    }
}
System.out.println (sb);
于 2013-02-06T07:20:56.763 に答える
2

あなたはそれを次のように行うことができます:

StringBuilder builder = new StringBuilder();
builder.append((city.isEmpty() ? "" : city + ","))
       .append(((state.isEmpty() ? "" : state + ",")))
       .append(((country.isEmpty() ? "" : country)));
String result = builder.toString();
if (result.endsWith(","))
    result = result.substring(0, result.length() - 1);
System.out.println(result);

ただし、あまりエレガントではありません。

PS私はJoinerそのようなタスクにグアバを使用します。

于 2013-02-06T07:21:16.747 に答える
1

それらすべてを配列またはリストに追加してから、次のように文字列ビルダーを使用して出力を作成します(擬似コード)。

StringBuilder sb = new StringBuilder();
for(int i=0; i<array.length-1; i++)
   if (!"".equals(array[i]))
      stringbuilder.append(s + ",");                   

if (sb.length() > 0)
  sb.deleteCharAt(sb.length()-1); 
于 2013-02-06T07:25:41.843 に答える
0
String finalString =(city.equals("") ? "" : ("city"  + ",")) +
                    (state.equals("")? "" : ("state" + ",")) +
                    country.equals("") ? "" : "country"

finalString = finalString.endsWith(",") ? finalString.substring(0, finalString.length-1) : finalString;

System.out.println(finalString);
于 2013-02-06T07:22:12.320 に答える