- ベストアンサー
compareToメソッドを使って
StringクラスのcompareToメソッドを使って 入力された文字列を昇順に並び替える処理をしたいのですが 1文字ずつ比較し手動で並び替えるというロジックがうまくいきません。 どのようにコーディングすればよいでしょか? どなたかご協力お願いします!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- pcbeginner
- ベストアンサー率46% (261/560)
- kscKane
- ベストアンサー率62% (18/29)
- pcbeginner
- ベストアンサー率46% (261/560)
関連するQ&A
- Javaの文字列の大小比較についてです。
Javaでは、文字列の大小比較をする時、StringのcompareToを使用しまが… compareToの中の処理は一旦char型に直して、それを比較しているのでしょうか? また、compareToを使用せずに、プログラム内に自分で書いた場合、処理速度は変化ありますか?
- ベストアンサー
- Java
- Stringクラスのlengthメソッドについて
こんにちは、Stringクラスのlengthメソッドについて質問させてください。 今まで配列のlengthは、宣言時に長さが決定するからメソッドではなく、finalフィールドで十分。 ArrayListだとかは長さが変わるからメソッドという意識を持っていました。 (カプセル化の概念とも関わりますが) 先日その話しをしていたら、「でも文字列(Stringオブジェクト)の長さも不変だよね。」と言われました。 確かに文字列の長さは不変なのに、長さの取得にはメソッドを使っています。 言語仕様として一貫性を持たせるなら、配列もlengthメソッドにするか、文字列をlengthフィールドにしたほうが綺麗だと思うんです。 Stringクラスのソースコードを見ていたら、文字列の長さは内部的に private int count; と宣言されていました。 そして、lengthメソッドは return count; しているだけでした。 ただ、このcountフィールドに値を代入しているのはコンストラクタ内だけだったので、 public final int length; とすれば、良かったのでは?と思いました。 この考えについて、 それは間違っている、とか歴史的な背景などご存知でしたらご教授ください。 よろしくお願致します。
- 締切済み
- Java
- ComparableとComparatorの違いについてわからなくて困っています。
ComparableとComparatorの違いについてわからなくて困っています。 以下のURLのサイトを記事を見ているのですが、 http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000179.html http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000180.html java.lang Comparableインタフェース メソッド public int compareTo(Object o) java.util Comparatorインタフェース メソッド public int compare(Object o1, Object o2) public boolean equals(Object obj) これらの違いについてなのですが、URLの記事では、 ・Comparableインターフェイスの実装クラスにしてcompareTo()メソッドを実装するのは、比較対象が明確であり、比較結果が一般的に分かりやすく容易に想像できる場合にのみとした方がよい ・Comparatorは任意の順番でソートしたい場合にも使用できる。例えば、昇順ではなく降順でソートしたい場合や、複数のデータを持つクラスについて細かく比較方法する場合 と記事にありますが、説明がうまく解釈できないです。 ・Comparableは主にラッパークラスやStringなどで使用するためのものなのでしょうか?(実装してるからそうだとは思いますが) 比較対照が明確なので compareToのreturn文で 除算するだけで可能? ・ComparatorはArraysやコレクション、自作クラス向けに任意の順番でソートするためのものなのですか? 自作クラスについてはComparableでもcompareTo()をオーバーライドすれば同じことが可能? 通常はComparator実装クラスのcompare()の中にreturn文でcompareTo()を使用しているような気もします。 この方法だとObject型で引数を渡して、int型に変換して比較になると思いますが、 StringだとComparableを実装してるから、戻り値でint型が返るのかな、 public int compare(String s1, String s2) { return s2.compareTo(s1) } つまり、自作クラスはインスタンスフィールドにある基本型やObject型(String, Integerなど)の値を使い、 基本型においては除算を使用し、オブジェクト(Comparableを実装しているもの)に対してはcompareTo()で比較するのでしょうか? (これで解決したような気もしますが) 質問がわかりずらくてすみません。何か解釈の間違いがあればご指摘お願いします。
- 締切済み
- Java
- コマンドラインの文字列を違うメソッドに渡す。
コマンドラインに入力された文字列を同じクラス内の 違うメソッドから利用したいのですが、 mainでは method(args[]); method側では、 method(String args[]) としていますが、エラーがでます。 javac hoge.java hinshiExtract.java:149: '.class' がありません。 countTango(args[]); ^ hinshiExtract.java:149: ')' がありません。 countTango(args[]); お願いします。 ^
- ベストアンサー
- Java
- replaceChildメソッドについて
XMLの扱いがわからなくて困っています。 javaでXMLのノードを変える、例えば、 jspの画面で要素ノードとテキスト名(要素ノードの内容)を入力して 送信ボタンを押したら、要素ノードでノード検索をしてそのテキスト名を 変更するという処理をする場合、replaceChildメソッドを使うのかと 思ったんですが、replaceChildメソッドだと、「既存のノード」しか 置き換えれなくて文字列が指定できません。 この場合、文字列をノードに変換するメソッドがあるのか、それとも 他に方法があるのか教えていただけないでしょうか。 お願いします。 よろしくお願いします。
- ベストアンサー
- XML
- C#にてクラス・メソッドを文字列で指定
お世話になります。このカテゴリーで良いか微妙ですが。。。 C#で、以下のようにインスタンス生成+メソッド起動を行う処理について、クラス名とメソッド名を文字列で指定し、実行することはできないでしょうか? 尚、メソッドの引数は常に「ref strdata」の固定であるという前提で構いません。 ご教授、お願いします。 --------------------------------------------------- //引数(参照渡し)用の変数 strring strdata = string.Empty; //クラスcsTestのインスタンス生成 csTest insTest = new csTest(); //メソッドmsTestを実行 insTest.msTest(ref strdata);
- ベストアンサー
- C・C++・C#
- toString()メソッドについて2
toString()メソッドは、自分で設計したクラスで定義しておく(オーバーライドする)とより便利です。「Car@数値」よりももっとわかりやすい文字列を返すようにすることができるからです。 とある本に書いてありますが、オーバーライドするとわかりやすい文字列を返すとは どういう意味でしょうか?
- ベストアンサー
- Java
- Javaの公式メソッドの中身を見るには?
Javaの公式なメソッドやクラスの中身を見るにはどうすればいいでしょうか? jTextAreaクラスに、指定した位置に文字列を挿入する、 「insertメソッド」というメソッドがあるのですが、 このメソッドがどういうアルゴリズムかを勉強したいのですが、 JavaのAPIを見ても、引数や説明があるだけで、中のソースがありません。 http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JTextArea.html#insert%28java.lang.String,%20int%29 何か中身を見る方法ありませんか?
- ベストアンサー
- Java
- 別クラスのメソッドの呼び出し
どうしても期待した値が取れず、バイナリが返ってきてしまいます。 簡単な内容なので申し訳ないのですが書き方を教えて下さい。 下記内容です。↓ クラス01にmainメソッドを作成。 そこに「一」「二」「三」を格納する変数を宣言。 クラス02にpublic以外のメソッドを作成。 そこで「一」「二」「三」を引数として受け取り、その3つを「+」以外で文字列連結する。 クラス01のmainメソッドから、クラス02のメソッドを呼び出し、最後にSystem.out.printlnで戻ってきた文字列を出力。 ソース貼っておらず申し訳ないのですが宜しくお願いします。
- ベストアンサー
- Java
- メソッドの命名の仕方
変数やメソッドの名前を決めるのは、 簡単なことのようで難しかったりします。 それでいて重要であったりもします。 そこで、1つ気になる点があるので質問させていただきます。 例えばある Util クラスがあるとします。(例として StringUtils クラス) この StringUtils は static なメソッドの集まりをもつように実装します。 文字列が空かどうか調べるために、よく使用されているのが public static boolean isEmpty(String value) というメソッドがありますが、これに疑問があります。 このメソッドを使用する場合は、StringUtils.isEmpty("abc") などとなると思いますが、これって英語の意味的におかしい気がします。(私は英語がまったくできないので偉そうなことは言えませんが、、) これだと、「StringUtlsは空だ」みたいな意味になってしまいませんか? 私はこういうときには「checkIfValueIsEmpty(String value)」のようにしています。StringUtils.checkIfValueIsEmpty("abc") これだと「StringUtils が value を空かどうかチェックする」という意味になりませんか? 皆さんはこういう場合、どのように命名されていますか? 確かに boolean を返す場合には定例や規約として「is~」が使われていますが、どうも気持ちが悪いので質問させていただきました。 以上、よろしくお願いいたします。
- ベストアンサー
- Java
- 完全ワイヤレスBluetoothヘッドホンについて
- ご利用の端末タイプはiPhoneSEで、製品名・型番は完全ワイヤレスBluetoothヘッドホン LBT-TWS16CSGN(クリームソーダ)です。
- この製品はBluetooth接続で、複数のデバイスに接続することは可能でしょうか?
お礼
一度配列にきちんと格納してから処理をするんですね。 とてもきれいで分かりやすいです! 一度に処理をしようと焦るからダメなんですねー。 勉強になります。本当に助かりました。 ありがとうございました♪