No.4ベストアンサー
- 回答日時:
//#3を若干修正したバージョン for JAVA 1.5
import java.util.Arrays;
import java.util.Comparator;
//import java.lang.Character;
//[A-Z]は[a-z]より大きい
class MyCharSort implements Comparator<Character> {
public static void main(String args[]){
char inpData[] = {'A','b','z','Q',' ','R','Z','H','A'};
Character data[] = new Character[inpData.length];
for(int i=0;i<inpData.length;i++){
data[i]=new Character(inpData[i]);
}
Comparator<Character> cmp=new MyCharSort();
Arrays.sort(data, cmp);
for(Character c : data){
System.out.println(c.charValue());
}
}
public int compare (Character ch1, Character ch2) {
char c1=ch1.charValue(), c2=ch2.charValue();
if(Character.isUpperCase(c1) && Character.isLowerCase(c2))
return ( 1);
if(Character.isLowerCase(c1) && Character.isUpperCase(c2))
return (-1);
return (ch1.compareTo(ch2));
}
}
No.5
- 回答日時:
1.
charは整数型ですので、大小が比較できます。
例:
char a = 'a';
char b = 'b';
System.out.println("a:"+(int)a+",b:"+(int)b);
とすると分かるかと思います。
2.
次に大文字、小文字の判定ですが…
1.を応用すれば比較できます。
[a-z],[A-Z]の整数値を出力してみれば、大文字と小文字の範囲が分かるので、
小文字の最小値以上かつ小文字の最大値以下なら小文字
大文字の最小値以上かつ大文字の最大値以下なら大文字
1.と2.を組み合わせれば比べる2つの文字が大文字か小文字を判定して、さらに大文字内での大小比較、小文字内での大小比較をすればいいと思います。
もし、クイックソートのアルゴリズムについて知りたければ、検索すれば沢山ひっかかるでしょうし、javaのサンプル(demoの下)にもQSortAlgorithm.javaというクラスがあるので、参考にしてみるのもいいかもしれません。
No.3
- 回答日時:
[A-Z]は[a-z]より大きい、というのを踏まえて、ソートする部分を作るのはイヤなので、比較関数だけ作ってArrays.sortを利用しようとするサンプル。
メソッド compare の部分がほぼ#1で説明していることそのまま。
この場合のソートはマージソート(なので質問文の要求とは異なる)
#2の説明Array.sortはArrays.sortの間違い
どうも、望んでいるモノと違うという場合には、
質問者の作成したソースを補足で挙げて下さい。
私自身、java は、勉強中なので、変なソースかもしれないことをおことわりしておきます。
------8<-------8<--------8<--------
import java.util.Arrays;
import java.util.Comparator;
//import java.lang.Character;
//[A-Z]は[a-z]より大きい
class MyCharSort implements Comparator {
public static void main(String args[]){
char inpData[] = {'A','b','z','Q',' ','R','Z','H','A'};
Character data[] = new Character[inpData.length];
for(int i=0;i<inpData.length;i++){
data[i]=new Character(inpData[i]);
}
Comparator cmp=new MyCharSort();
Arrays.sort(data, cmp);
for(Character c : data){
System.out.println(c.charValue());
}
}
public int compare (Object o1, Object o2) {
Character ch1=(Character)o1, ch2=(Character)o2;
char c1=ch1.charValue(), c2=ch2.charValue();
if(Character.isUpperCase(c1) && Character.isLowerCase(c2))
return ( 1);
if(Character.isLowerCase(c1) && Character.isUpperCase(c2))
return (-1);
return (ch1.compareTo(ch2));
}
}
No.2
- 回答日時:
キーボードからの入力は、char data[]に入っているとして入力部分は省略した。
普通にArray.sort(クイックソート)を使用するサンプル
------8<--------8<-------8<-----------
import java.util.Arrays;
class CharSort {
public static void main(String args[]){
char data[] = {'A','b','z','Q',' ','R','Z','H','A'};
Arrays.sort(data);
for(char c : data){
System.out.println(c);
}
}
}
No.1
- 回答日時:
単純にソートするだけなら、java.util.Arraysのsortでできますが、
「小文字より大文字のほうが大きいものとする」と言うところが普通とは違うので自作しなければならないということでしょうね。
2つのchar型を比較するメソッド(関数)で、まず、種類(大文字か小文字か)で比較が決まればその結果を返し、種類が同じなら単に大小比較をすればいいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Java Java配列の問題を教えてください。 乱数で20個出力し、最大、最小、合計、平均を求め、更に昇順にソ 3 2023/07/10 18:32
- Excel(エクセル) エクセルの日付から年末尾2桁と月を1月をA~Lに変換したい 3 2022/08/08 10:32
- Excel(エクセル) ①Excel シートに、「=」を入力したいのですが、shift+「ほ」を押すと、「_」と入力されます 2 2022/04/28 12:59
- 高校 数学Aの問題です。 下記2パーンのとき、それぞれ何通りありますか? ①アルファベット大文字小文字のい 3 2023/02/08 16:32
- Windows 95・98 Excelでアルファベットの大文字をうちたい 2 2023/03/13 17:00
- マウス・キーボード chromebook キーボードについて 1 2022/10/16 13:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
<forEach> 内で供給された "ite...
-
「例外 *** は対応する try 文...
-
createImage()を使い コンパイル
-
c:importタグ内に、変数をセッ...
-
NetBeansによる画像の表示
-
(急募)JavaカレンダーをGUI可に...
-
Androidで画面遷移ができません.
-
Chorometerで一時停止した後再...
-
アーティスト名リストを取得す...
-
ラムダ式 comparing(e->e.getVa...
-
Javaを使ってデジタル時計を作...
-
Javaで暗号化、複合化ができる...
-
ActionForm form にnullが入っ...
-
javaで画像を回転縮小
-
c# インターフェイスの実装の確認
-
Java での グローバルIP取得
-
J#でjava.awt.frameからSystem....
-
(急募)Javaじゃんけんゲームで...
-
java 始めたばかりです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「例外 *** は対応する try 文...
-
eclipseに記述したjavaファイル...
-
<forEach> 内で供給された "ite...
-
setAttribute(String, int)は適...
-
干支の計算で。。。
-
Javaを使ってデジタル時計を作...
-
HTMLでのTableタグデータ取得方法
-
importするには java.io.*; imp...
-
生年月日と今日の日付から年齢...
-
文字列を数式に
-
シャットダウンフックが呼ばれない
-
Javaで常駐するソフトを作って...
-
フレームの×ボタンを押しても閉...
-
Selenium IDEでexportしたコー...
-
文字サイズが可変のラベル
-
jFrameを使って複数の画面を生...
-
【java】検索フォームの検索結...
-
Java での グローバルIP取得
-
(急募)JavaカレンダーをGUI可に...
-
ファイル名を動的に生成したい
おすすめ情報