- ベストアンサー
ループ処理の際、最後だけ","をつけたくない
for(int i = 0; i < a.length; i++){ System.out.print(a[i]+","); } 配列aの要素を並べて表示する時、System.out.print中に","をつけると、配列要素の最終部にまで , がついてしまいます。(・・・・43,3,98, のように) 最後だけ "," をつけたくない場合、どのように記述すればいいのでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こういう場合は、三項演算子を使うのが常套手段でしょう。 for(int i = 0, n = a.length; i < n; i++){ System.out.print( a[i] + ( i!=n-1 ? "," : "" ) ); } 三項演算子は、使い方によっては非常に可読性が悪くなりますが、 この場合は、ifステートメント(ブロック)を使うよりも 分かりやすいと思います。
その他の回答 (4)
- seegrammar
- ベストアンサー率25% (253/974)
分かりやすく(長いけど)StringBuilder で appned(",") や deleteCahrAt メソッドをうまく使うとかはだめ?
- buriburi3
- ベストアンサー率44% (353/792)
a[i]+"," で最後だけカンマを付けないと考えると最後が何処なんだか分からない場合に難しいです。 他の方も回答してるように ","+a[i] で最初だけカンマを付けないと考えると簡単です。
- m-oosgi
- ベストアンサー率62% (10/16)
普通に for (int i = 0; i < a.length; i++) { System.out.print(a[i]); if(i!=a.length-1){ System.out.print(","); } } とかじゃダメなんですか? 1ステップで、とか。
- Fenrisulfr
- ベストアンサー率22% (21/95)
それはif文などで場合分けせずに書きたい、という事ですよね。 System.out.print(a[0]); for(int i = 1; i < a.length; i++){ System.out.print(","+a[i]); } これで一応実現可能ですが、これは必ずa[0]が存在する場合だけ安全なコードです。