No.1
- 回答日時:
なにがどう「うまくいかない」のでしょうか?
それを提示しないとアドバイスしようがないと思います。
この回答への補足
今自分が考えているのは入力された値を配列として取得し
そのひとつひとつを比較していくという処理なんですが
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String s = r.readLine();
String ss[] = new String[s.length()];
for(int i = 0; i < ss.length; i++){
for(int h = i; h < i; h++){
ss[i] = s.substring(i, i+1);
ss[h] = s.substring(h, h+1);
if(ss[i].compareTo(ss[h]) < 0){
"この部分に入る処理"
}
上記の部分に加える処理がうまくコーディングできないのです。
というか、そもそもこの配列を使った方法自体
あたっているのかが疑問です。。。
No.2
- 回答日時:
手動での並べ替えはソートアルゴリズムを使いましょう。
http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/al …
バブルソートが、動作は遅いですがわかりやすくて現段階ではお勧めです。
こういうところ(ソートの仕方)が分からないのではなかったら申し訳ありません(汗)
ありがとうございます!
私が聞きたかったのはまさにこれですね!
言葉足らずのまま質問してしまってすみません。。。
早速サイトを参考にさせていただきます。
No.3
- 回答日時:
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String s = r.readLine();
String ss[] = new String[s.length()];---(6)
for(int i = 0; i < ss.length; i++){---(5)
for(int h = i; h < i; h++){---(2)
ss[i] = s.substring(i, i+1);---(3)
ss[h] = s.substring(h, h+1); ---(4)
if(ss[i].compareTo(ss[h]) < 0){ ---(1)
"この部分に入る処理"
}
(1)のif分がtrueになるということは、
ss[i]より、ss[h]の方が小さいということになります。
昇順に並び替えるなら、ss[i]とss[h]の”値”を入れ替えなければなりません。
入れ替え用に何かテンポラリの変数を用意しておき、
temp = ss[i];//入れ替え用テンポラリ変数
ss[i] = ss[h];
ss[h] = temp;
とすればよいでしょう。
あと、気になったのは、
(2)
hの初期値がiと同値なので、同じ値同士を比較するので1回余分かなぁ。
条件が「h < i」なので、(2)のfor文の中には1回も入らないんじゃないかなぁ。
(3)(4)
(5)で、「i」が「ss.length-1」の値となったときに(3)(4)に入ると、
「i+1」「h+1」が文字列sの範囲を超えてしまって例外が発生するんじゃないかなぁ。
(6)
1文字ずつしか入れないので、char[]にした良いのでは?
(3)(4)の部分はs.charAt(int index)を使って。
(あっ、「StringクラスのcompareToメソッドを使って」という質問でしたね。失礼しました。)
です。
>「i+1」「h+1」が文字列sの範囲を超えてしまって例外が発生するんじゃないかなぁ。
なるほど、確かに!
間違いなく例外発生ですね。
詳しいご指摘ありがとうございました。
自分にとっては難題だったので頭の中がグチャグチャでした・・・
指摘された部分をきちんと見返して理解に努めます。
またいつかお手伝いよろしくお願いします。
No.4ベストアンサー
- 回答日時:
#1の方に対する補足で思ったことを。
#1補足のようなソースで行くなら、私なら
1.入力文字列を配列にばらして格納する。
2.ばらした配列に対して、ソートをかける。
と言う順番で処理します。
ばらして入れながら同時に並べ替えでは、処理がごちゃごちゃになりそうです。
一つ一つの処理を順番に行っていきましょう。
私が作ったらこんな感じになりました。
思いつくまま作ったので、かなり穴はありそうですが。
public static void main(String[] args) {
String s = "13579acegikmoqsuwy02468bdfhjlnprtvxz";
String ss[] = new String[s.length()];
String temp ;
for(int i = 0; i < ss.length; i++){
ss[i] = s.substring(i, i+1);
}
for(int i = 0; i < ss.length; i++){
for(int j = i + 1; j < ss.length; j++){
if(ss[i].compareTo(ss[j]) > 0){
temp = ss[i];
ss[i] = ss[j];
ss[j] = temp;
}
}
}
System.out.print("結果:");
for(int i = 0; i < ss.length; i++){
System.out.print(ss[i]);
}
System.out.println();
}
一度配列にきちんと格納してから処理をするんですね。
とてもきれいで分かりやすいです!
一度に処理をしようと焦るからダメなんですねー。
勉強になります。本当に助かりました。
ありがとうございました♪
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- その他(Microsoft Office) 逆順 3 2023/08/24 09:30
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
テキストボックスに入力された...
-
論理演算子”||”またはの入力方法
-
Loop後に変数が出力できないです
-
基数変換プログラム
-
javaプログラムについて
-
Java、2の0乗~10乗の表示
-
繰り返しによる星印の出力
-
for文を使った累乗の計算方法に...
-
Randomメソッドの確率設定
-
数値⇒漢数字変換 java
-
Java 配列<選挙>
-
Ctrl+Zが入力されると終了する...
-
java キーボード入力された値の...
-
階乗の式
-
VBAで配列の計算
-
配列にnullを代入すると、null...
-
配列をセッションに割り当てた後で
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
Java、2の0乗~10乗の表示
-
数値⇒漢数字変換 java
-
論理演算子”||”またはの入力方法
-
コマンドライン引数の例外処理...
-
JAVAのfor文で困っています。
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Java 入力した整数値の合計を、...
-
7つ数字を表示したら改行すると...
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
総称型ArrayList<E>への参照...
-
Randomメソッドの確率設定
-
Ctrl+Zが入力されると終了する...
-
学校で課題を出されて困ってい...
-
Java キーボードから負の数が入...
-
キーボードから10人分の点数を...
-
階乗の式
-
Java 配列<選挙>
おすすめ情報