- ベストアンサー
ArrayList
課題プログラムの中で、いくつかArrayListを使ったメソッドを作って動かすものが出題されているのですが、そのうち「ArrayListの文字を反転させて出力する」というのがわかりません。 何を使ったらよいでしょうか? ちなみに、私の書いたプログラムの中では、 ArrayList<String> list = new ArrayList<String>(); としていますので、それで書いて下さると嬉しいです。 また、課題の中で、listの中に入っているのは、String型のアルファベット10個です。 教えて下さい、よろしくお願いします。 ▼参考API http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/ArrayList.html
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こういうことでしょうか? ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); for ( int i = list.length - i; i >= 0; i++ ) { System.out.println(list.get(i)); }
その他の回答 (3)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#2>for(String str : list)とするとどうなるのですか? list の中の要素を1つずつ取り出しstr に設定してループします。 つまり、ArrayList<String> に設定した内容を1つずつ取り出し処理するループです。 #1>ArrayListを使って、という指示にはあっていませんよね…。 ArrayList を使うという意味によると思います。 例えば、 <1>,<2>,<3> という並びのリストがあった時に <3>,<2>,<1> のいう順番に取り出すという意味なら、#2は、全然違いますけど、 >文字を反転させて出力する という意味が ArrayList の要素である"ABC" を"CBA" のように表示するという意味なら、 String のデータをArrayList のメソッドで操作することはできませんので String , もしくはそれに類するクラスのメソッドで操作することになろうかと思います。 意図するところを勘違いしていたら、どのように違うのかを補足してください。
お礼
for(String str : list)の説明、有難うございました。わかりました! 先生の説明っぷりから、おそらくArrayListのメソッドで、という意味だと思うので、出来ればArrayList内で表現したいと思います。 いろいろ有難うございました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
//意図に沿っているかはわかりませんが import java.util.*; public class Sample { public static void main(String argv[]){ ArrayList<String> list = new ArrayList<String>(); list.add("ADAM"); list.add("EVE"); list.add("CAIN"); list.add("ABEL"); list.add("LILITH"); list.add("LUCIFER"); list.add("ABRAHAM"); list.add("YITZHAK"); list.add("DAVID"); list.add("SOLOMON"); for(String str : list){ StringBuffer rev = new StringBuffer(str); System.out.println(rev.reverse()); } } }
お礼
有難うございます。 習い始めてまだちょっとしか経っていないので、よくわからないのですが、for(String str : list)とするとどうなるのですか? あと、確かにStringBufferにreverse()はありますが、ArrayListを使って、という指示にはあっていませんよね…。 ArrayListでどうしてもわからなかったら使わさせて頂きます、有難うございました。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
Javaは最近始めたばかりで良く分かりませんが一応出来ました。 良くないプログラムっぽいですが、これはどうでしょう? ArrayList<String> al = new ArrayList<String>(); al.add("abcde"); al.add("fghij"); for(int i=0; i<al.size(); i++) { int length = (al.get(i)).length(); char str[] = (al.get(i)).toCharArray(); for (int j = 0; j < length/2; j++) { char c = str[j]; str[j] = str[length-1-j]; str[length-1-j] = c; } System.out.println(str); }
お礼
うむむ…toCharArrayですか…。 出来るだけ、ArrayListだけでやりたいのですが。 有難うございました。
お礼
あぁなるほど、list自体を変えるのではなく、表示だけを変えているのですね…それでいいのかもしれません。 有難うございました。