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

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

Javaコミュのすみません、、おしえてください。。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。
私は今、オーストラリアの大学でJavaを習っているのですが、まだほとんど理解できず、、なのに今週中に課題を提出しなくてはならず、、たすけてください。

適当なコードが何なのか、本を開いても(もちろん全部英語^^;)いまいち見当がつかないのです。。こんな初歩の初歩でつまづいてて情けないのですが、、私にはさっぱり。。

ヒントだけでも結構です。どのコードを利用すればいいのかだけでもわかれば、組み合わせてみますので、どうかおしえてください。。

タスクは以下の通りです。
-------------
1:ユーザーに名前と誕生年と好きな色を入力してもらう。
2:名前から最初のスペル3文字を抜き出してニックネームを作る。
3:A_ユーザーの年齢が18才以上であること、B_誕生年が5で割り切れること、C_好きな色に特定のレターが含まれていること(例えば"n"を特定のレターとした場合、pinkやgreenは該当しますが、redは該当しません)の3つの条件が揃った場合に、ラッキーなメッセージを画面にだします。
4:Aの条件に満たない場合のメッセージと、BCいずれかの条件に満たない場合のメッセージとを画面に表示します。
-------------------

で、私がわからないのは、、

「2:最初のスペル3文字を抜き出す」ために使うコード、あるいはその方法は?
「3:特定のレターを判別」するための設定方法は?

以上の2つでひっかかって先に進めないのです。。
「switch」か「if,else」の中にこれらを組み合わせていけばいい、、という概略までは理解できているのですが、細部の設定が??でいつまでたってもコンパイルできません。。(T_T)

コメント(21)

どちらも文字列操作にからむメソッドを使用するので、
APIドキュメントがあればJava.lang.Stringクラスを参照して
みて下さい。
文字列の開始・終了位置(或いは長さ)を指定して
部分的に抜き出すメソッド、特定の文字が含まれているかを
判定するメソッド、ともに一発でありますよ!(・∀・)

まず主要なクラスにどんなものがあるかを勉強しておいて、
やりたい操作ではどんなデータを扱うか(文字列操作ならString、
基礎的な数値演算ならMathクラスというように)見当をつけて
APIドキュメントを探していく…と言うような探し方をすれば
だんだんコツがつかめるんじゃないかと思います。

説明下手で申し訳ないですが…
String 型で扱っているなら
2は
substring( 0, 3 )
3は
indexOf( 特定の文字 ) != -1
で一発です。
その検討がつくまでが、大変なんで、逆引き本を手元に置いておきましょう
とりあえずこちらへ
http://mixi.jp/view_bbs.pl?&id=110090
参考までに…

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html
java.lang.Stringのメソッド
indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。

substring(int beginIndex, int endIndex)
この文字列の部分文字列である新しい文字列を返します。

を使用すれば簡単かと思います。
一文字づつ検索する方法もありますが
やり方はいくらでもあるのでがんばってください。

日本語のドキュメントをSUNからダウンロードできます。
http://java.sun.com/j2se/1.4.2/ja/download.html

以下なんかも使えるサイトです
http://java-house.jp/ml/
コメントありがとうございます!!

まずは途中まで作ってみたのですが、
「substring(0.3)」の使い方ってこれでよいですか?
何か私、間違っているようでエラーがでます。。
---------------
/**
*/
import pps.Keyboard;
public class AssigOne
{
public static void main(String[] args)
{
System.out.println("the program begins");

String nickname = new String(nickname);
String yourName, favouriteColor;
int yearBirth;

yourName = Keyboard.readString("enter your name:");

nickname = yourName.substring(0.3);

yearBirth = Keyboard.readInt("enter your year of birth:");
favoriteColor = Keyboard.readWord("What is your favourite colour?");
System.out.println("the program over");
}
}
おお!なるほど。カンマ,だったのですね。。

「indexOf( 特定の文字 ) != -1」の「-1」とは、どういう意味を持つのですか?
APIは読めますか?読めないと後々困るので、すぐに訊くのでなく
indexOfメソッドが引数に対して何を返すかまずは自力で調べてみて下さい。
http://java.sun.com/j2se/1.4.2/docs/api/index.html
ブックマーク推奨。
、、すみません。
「APIドキュメント」が何であるかも知りません。。

テキストファイルに打ち込んで保存し、コマンドプロンプトでrunしているだけなので。。
横槍失礼
API
すでに用意してあるJava言語のクラスだとかメソッドだとかをまとめたリファレンス。。。のはず^^;
メソッドに対して必要な引数の数や型から、戻り値の型もきちんと書いてあります。
見慣れた関数から探して、読み方を覚えるといいかも。

>−1とは
System.out.println(indexOf(文字列));とかやってみるとわかりやすいかも。
後は文字列を変えまくって、どんな出力がされるのかを調べるとか。
こんにちは。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
が日本語のAPIドキュメントです。

これを初めて見たときは膨大な量に圧倒されてしまいますが、全部使うわけではないので使うものだけ見ていきましょう。

ここではStringというクラスが問題になります。左のバーからStringというクラスを探してクリックすると、右側にStringクラスの使い方が出てきます。

> 「indexOf( 特定の文字 ) != -1」の「-1」とは、どういう意味を持つのですか?
ですが、indexOf(文字)の説明の中から戻り値の部分を見ると、

> 文字列引数がこのオブジェクト内の部分文字列である場合は、該当する最初の部分文字列の最初の文字のインデックス。部分文字列がない場合は -1

という部分が引けると思います。つまり、部分文字列(検索したい言葉)が無い場合は-1が返る仕様になってます。

と、このように調べます。
mixiやWebから情報を集めるのもよいですが、まずはAPIの調べかたから身につけなければ、その後ちょっと変則的な課題が与えられたときに調べられないので覚えておいて下さいね。
昔は、『独習Java』とかで、
基本から覚えたものですが・・・

StringクラスやIntegerクラスは、
Javaを扱う上で、基本中の基本になります。

ということで、いきなり、プログラムを書く前に、
基本となるクラスの使い方をまず覚えましょう。

って、外国で基本書なんて手に入るのか?って疑問ですが。
独習って翻訳物ではなかったでしたっけ?英語のスキルはわかりませんが、原書なら手に入るのではないでしょうか。
APIを読める=辞書をひけるスキルなので、これが出来ないで、基本の構文覚えるだけでは苦労しますよ。
ありゃ、APIドキュメントはそういや標準インストールでは
ついてこなかったっけ…

皆さんもう書いてらっしゃいますが、Sunから公式に配布されている 、
Javaのすべてのクラス・インターフェイスなどの一覧や
それらの持つメソッド、Static変数などについてまとめられている
辞書的なドキュメント(リファレンス)です。
Sunのサイトに行けばダウンロード出来ます。
23MBくらいありますが必ず落としておくべきだと思います。

初めたばかりということで、使用するメソッドだけ教えても
進歩にはならないと思い、最初のように大雑把にコメントしたのですが…
説明が足らなかったようですみません。

でも今のうちは、メソッドなんかを単品で覚えるより
「独習」みたいな本を読んで基本から理解を深めて行くことと、
APIドキュメントからメソッドを探し当てることに慣れて
「どこにあるか」ではなく「どうやって探すか」の能力を
身につけた方がいいと思いますよ。
ありがとうございます。

自分だけでは概略を把握するのだけで精一杯でその先どこをどう調べてよいのかわけがわからず藁をもつかむ思いでここにとびこんでしまいました。

たぶん今の私は「マウスで画面をクリックしてください。」と言われたら、マウスを直接画面に持っていってしまうようなPC初心者と同様のJava初心者です。なのでもしくだらない質問をしていたらごめんなさい。。

でもそれにもかかわらず今回色々なアイディアをいただいたので、この先になんだか希望がわいてきました。

あと3日、がんばります♪
/*
*逆にこっちが勉強になってしまったw
*まだSwingとかThreadとか苦手なんですよねぇ
*GUIはEclipseでできちゃうから問題ないけど(ぇ
*Thredをいまいち活用できたためしが無い。。。
*/

ログインすると、残り3件のコメントが見れるよ

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

Java 更新情報

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

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

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