ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュのアルファベットを数字に変換するプログラム

  • mixiチェック
  • このエントリーをはてなブックマークに追加
1.任意の英文を読み込み、アルファベットを1から26の数字に置き換えて出力するプログラムを作成しなさい。(カンマ、?、空白等は使用しない)

2.コマンドライン引数により指定した、任意の数の順不同のアルファベットを、昇順および降順に並び替えて出力しなさい。同じ文字を入力した場合にも対応できるようなプログラムとすること。

【ヒント】
charAt()メソッド
説明:指定位置の文字を1文字引き出す
引数:文字のインデックス
戻り値:iインデックス位置にある文字

   文字→数値で表現→大小が分かる

という課題なんですがとりあえずclass kadaiとし呪文のようにpublic static main(String[] args){
と入力しますよね
 問題はこの後どう続けていくかということなんですが皆様のお力を貸していただけませんか
  お願いします

コメント(8)

課題1できたー

import java.io.IOException;
public class Kadai1 {
public static void main(String[] args) {
System.out.println("start kadai1.");
byte[] input = new byte[1024];
int length = 0;
//入力待ち
try {
length = System.in.read(input);
} catch (IOException e) {
e.printStackTrace();
}
//入力した文字を数字に変える
for(int i=0;i<length;i++){
//「a」が1なのでaのコード番号を引いて1を足す
int num = input[i] - 'a' + 1;
if(num > 0){
System.out.println(((char)input[i])+" = "+num);
}
}
}
}
課題2

import java.io.IOException;
import java.util.Arrays;
public class Kadai2 {
public static void main(String[] args) {
System.out.println("start kadai2.");
byte[] buff = new byte[1024];
int length = 0;
//入力待ち
try {
length = System.in.read(buff);
} catch (IOException e) {
e.printStackTrace();
}
//長さを切り詰める
byte[] input = Arrays.copyOf(buff, length);
//ソート
Arrays.sort(input);
//表示
System.out.println(new String(input));
}
}
けろ将軍さん回答ありがとうございます^^
ただ実行してみたところこのようになってしまったのですが・・・

kadai1java:2: クラス Kadai1 は public であり、ファイル Kadai1.java で
宣言しなければなりません。
public class Kadai1{
^
エラー 1 個

Z:\java>javac kadai2.java
kadai2.java:3: クラス Kadai2 は public であり、ファイル Kadai2.java
で宣言しなければなりません。
public class Kadai2 {
^
kadai2.java:15: シンボルを解決できません。
シンボル: メソッド copyOf (byte[],int)
場所 : java.util.Arrays の クラス
byte[] input = Arrays.copyOf(buff, length);
^
エラー 2 個

ああーーー笑
ファイル名を Kadai1.java,Kadai2.java (先頭大文字)にするか、
プログラム中のclass宣言のクラス名を小文字先頭にしてください。

ちなみにJavaではクラス名の先頭を大文字にするのがお作法です。
それから、コンパイルするときのJavaのバージョンは1.4かな?
コマンドプロンプトで

javac -version

を実行した結果を教えてください。
あ、なるほど!
 おかげさまでうまくいきそうです^^
ありがとうございました
問題からするとコマンドライン引数から、
文字列を取得しないといけないので、
課題1はこのようになると思います。


/**
* コマンドライン引数の文字列を数値に置き換え表示する。
* @author SIBA
*/
public class Kadai1 {

/**
* メインメソッド
* @param args[0] 数値に置き換えたい文字列
*/
public static void main(String[] args) {
// 引数チェック
if (args.length < 1) {
System.out.println("引数を指定してください");
System.exit(0);
}

// 文字を数値に置き換え
String str = args[0];
for (int i = 0; i < str.length(); i++) {
int strNum = str.charAt(i) - 'a' + 1;
System.out.println(strNum);
}
}
}
課題2は、課題1のプログラムを拡張してこんな感じになります。

import java.util.Arrays;

/**
* コマンドライン引数の文字列を数値に置き換え表示する。
* @author SIBA
*/
public class Main01 {

/**
* メインメソッド
* @param args[0] 数値に置き換えたい文字列
*/
public static void main(String[] args) {
// 引数チェック
if (args.length < 1) {
System.out.println("引数を指定してください");
System.exit(0);
}

// 文字を数値に置き換え
String str = args[0];
int[] strNums = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
strNums[i] = str.charAt(i) - 'a' + 1;
}

// 置き換えた数値を昇順で並び替え
Arrays.sort(strNums);

// 昇順で文字を出力
for (int i = 0; i < strNums.length; i++) {
// 数値を文字に置き換える
char ch = (char) (strNums[i] + 'a' - 1);
System.out.print(ch);
}
System.out.println();

// 降順で文字を出力
for (int i = 0; i < strNums.length; i++) {
// 数値を文字に置き換える
char ch = (char) (strNums[strNums.length - i - 1] + 'a' - 1);
System.out.print(ch);
}
System.out.println();

}
}

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング