新生活を充実させるための「こだわり」を取材!!

for(int i = 0; i < a.length; i++){
System.out.print(a[i]+",");
}
配列aの要素を並べて表示する時、System.out.print中に","をつけると、配列要素の最終部にまで , がついてしまいます。(・・・・43,3,98, のように)

最後だけ "," をつけたくない場合、どのように記述すればいいのでしょうか。

教えて!goo グレード

A 回答 (5件)

こういう場合は、三項演算子を使うのが常套手段でしょう。



for(int i = 0, n = a.length; i < n; i++){
System.out.print( a[i] + ( i!=n-1 ? "," : "" ) );
}

三項演算子は、使い方によっては非常に可読性が悪くなりますが、
この場合は、ifステートメント(ブロック)を使うよりも
分かりやすいと思います。
    • good
    • 7

分かりやすく(長いけど)StringBuilder で appned(",") や deleteCahrAt メソッドをうまく使う

とかはだめ?
    • good
    • 3

a[i]+"," で最後だけカンマを付けないと考えると最後が何処なんだか分からない場合に難しいです。


他の方も回答してるように ","+a[i] で最初だけカンマを付けないと考えると簡単です。
    • good
    • 0

普通に


for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
if(i!=a.length-1){
System.out.print(",");
}
}
とかじゃダメなんですか?
1ステップで、とか。
    • good
    • 0

それはif文などで場合分けせずに書きたい、という事ですよね。



System.out.print(a[0]);
for(int i = 1; i < a.length; i++){
System.out.print(","+a[i]);
}

これで一応実現可能ですが、これは必ずa[0]が存在する場合だけ安全なコードです。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング