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

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

Javaの課題丸投げコミュのよろしくお願いします。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
課題で行き詰っているので、手を貸していただけるようお願いします。

テキストファイルに、以下のように、「学籍番号 数学 理科 社会 国語 英語」の各科目の点数が記録されています。
それを読み取り、各科目の平均点と合計点の高い順に順位をつけ、テキストファイルに出力するというプログラムです。

1 60 72 88 41 58
2 50 45 37 86 13
3 44 41 99 54 24
4 12 89 68 32 89
5 48   25
6 22 46 34 90 98
7 75 56


ところが、5番や7番のようにところどころデータが欠落しているところがあります。

7番のような左詰めになっているところはまだいいんですが、5番のように間のデータが抜けているような場合に、どのような判断をすれば「数学:=48,社会:=25」とすることができるんでしょうか?
実際のデータは、これが20000まであります。

宜しくおねがいします!

コメント(8)

学生番号:1-5桁
数学:6-8桁
理科:9-11桁
社会:12-14桁
国語:15-17桁
英語:18-20桁
って感じで
00006*22100*****0**8 (*はブランク)
みたいなフォーマットになる。
間違って違うの消しちゃった・・
String#substringで各科目のデータを取り出せます。
>chunさん
ありがとうございます!!
お陰で、ある程度進んだんですが、また問題が出てしまいました。。

合わせて質問なんですが、
データのところどころの数字が、"**"となっている箇所があり、
そこを"44"と直す必要があるんです。

その処理のところで、

StringTokenizer st1 = new StringTokenizer("**");
StringTokenizer st2 = new StringTokenizer(" **");

String s1 = st1.nextToken();
String s2 = st2.nextToken();

としたときに、s1==s2がtrueとならないんですが、
それは何故なんでしょうか?

宜しくお願いします!
s1とs2の内容がまったく同じなのに s1== s2がtrueじゃないのが変だっていってるのですか?

s1.equals(s2)じゃなくて== 演算子ですよね・・・・・
そりゃ 同じ値を保持してる べつのinstanceだからじゃないの???
参照先がちがきゃ、== で trueにはならないような・・・・

それと、なぜ。。。String#replace()つかわないのかはなぞ・・・・です。
>としたときに、s1==s2がtrueとならないんですが、
>それは何故なんでしょうか?

それが文字列だからです。

文字列比較する時は

if(s1==s2){

じゃなくて

if(s1.equals(s2)){

としないとだめなんですねー。
>あとわいとさん、chunさん
そーでした!
初歩的すぎる質問ですみませんっ(汗)

おかげ様で課題も完成しました!
まだまだ分からないことだらけなので、もっとJava勉強しますっ。

ありがとうございました!

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

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

Javaの課題丸投げ 更新情報

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

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