人に聞けない痔の悩み、これでスッキリ >>

こんにちは
私は最近SEとして働き始めたものです。
文系大学出身ということもあり、当初「プログラム?Java?なにそれ、おいしいの?」というレベルでしたが、勉強してなんとかSJC-P資格取得するとこまではこぎつけました。
しかし、これまで机上の勉強ばかりで、アプリケーション製造などを行ったことはないので、自分でいろいろプログラムを作って体でJavaを覚えていきたいと考えています。

そこで、お聞きしたいのですがJavaで初心者がつくるアプリケーションといえばどんなものがあるでしょうか?

できれば、具体的に「こんなものを作ってみよう!」というような書籍やサイトを紹介して頂けると助かります。Javaの構文についての書籍はたくさん見つかるのですが、具体的に掲示板を作ってみようとかチャットを作ってみようとか、そういった書籍が見当たらないので困っています。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

まずはズバリJDBCかと思います。

その後はJSPを勉強してJDBCと組み合わせて学習すると完璧です。
私は参考URLを元に、自分の所持しているゲームソフトのWEB管理システムを作って勉強しました。
自分の趣味を絡めて何かを作ってみると勉強意欲が増す事でしょう。

参考URL:http://www.hellohiro.com/jdbc.htm
    • good
    • 1

回答3の追伸です。



SEとしてJavaで業務アプリを開発するにはJavaだけ知っていてもダメです。
データベースとSQLの最低限の知識は必須です。

ですので、先ほど紹介させていただいたCMSの本は、MySQLを使用してデータベースを利用したアプリケーションを作成するので良いと思います。
    • good
    • 0

「アプレットで○○を作ってみよう」なんて本があるかも知れませんが、SEとしてJavaを勉強されているなら、アプレットは作ってもまったく意味がないので作らないほうが良いです。



実務ではアプレットを使用する案件はまずないと思います。

ではなにが良いかなと思うと個人的にはショッピングカートが良いかと思います。
ただ、ネットで検索しても「Javaでショッピングカートを作ろう」って本が見つからなかったので、「JavaでCMSを作ろう」という本を紹介します。

『Javaによる自作CMS ~Tomcat+Struts+MySQLで作るWebアプリケーション~ 』
http://www.amazon.co.jp/Java%E3%81%AB%E3%82%88%E …

CMSとは「コンテンツ・マネジメント・システム」のことで、ブログやWikiやSNSなどの最近流行のWEBアプリケーションの総称です。
ですので、掲示板みたいな機能を作ることが出来ると思いますよ。

ちなみに、ショッピングカートのほうが良いと思う理由は、CMSにはないショッピングカートの機能として以下の機能があるからです。
これらの機能はSEとして業務アプリケーションを作るうえで知っておいたほうがいいかなと思ったからです。

(1)カートに入れる
→ページを遷移しても、購入する予定の商品がカートから消えないというセッションの考え方を理解できる
※CMSは基本的に画面遷移したら入力内容が消えてしまう
→mixiで日記の書き込みに失敗したら、「戻る」ボタンで戻っても日記は消えちゃってる(T-T)

(2)商品合計金額の算出など入力を元にした計算処理を考える必要がある
※CMSは基本的に入力したものをそのまま表示するだけで、計算処理はない

(3)商品の販売期間を終えて、商品テーブルから商品を削除しても、商品の購入履歴ではその商品が見えないといけないという、履歴を考慮したデータベース設計にする必要がある
※CMSは基本的にデータベースにあるものを表示するだけなので、削除したら表示されなくなる
    • good
    • 0

Vectorなどで公開されているフリーウェアで、取っ掛かりのよさそうなアプリを選んで、Javaで真似て作ってみるというのはどうですか?


作っていく過程でわからないことが出てくると思うので、その都度調べていけば、どんどん吸収できると思いますよ。

直近の仕事がWebアプリでもデスクトップアプリでも、現状あるアプリにおける要求・仕様を自分なりに理解して、それを構築していくと、結構勉強できますよ。
    • good
    • 0

チャットプログラムの載っている書籍は、以下のものがあります。


Javaネットワークプログラミング基礎からわかる完全入門 永嶋浩著 技術評論社
ネットで検索すればすぐにヒットします。
もうひとつお勧めなのは、次の本。
JavaWebプログラミング基礎からわかる完全入門 柏原正三著 技術評論社
仕事としてjavaを使うなら、初心者もプロも関係ないでしょう。Javaの仕事は「サイトの構築」です。Javaのプログラムだけではなく、サーブレットやJSP、J2EEなど、またApacheやTomcat、データベース、その他Eclipseの使い方なども必要ですね。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qjavaでゲームを作りたいです。初めてです。ぜんぜん知識もありません

javaでゲームを作りたいです。無謀ですが・・・
どうやって作ればいいのでしょうか?
その前にどんなゲームが作れるのでしょうか?

Aベストアンサー

回答ありがとうございました。
・・・脱帽です。はっきり言ってプログラミングやったことないのです。

そう思っていましたよ。でも、ゲームに目をつけたのはなかなかいいアプローチです。ただし、僕は二、三年Javaをかじりまくって、やっと文法を覚えてそれからいろんなアプリケーションを作っています。ゲームづくりはもう少し先の話ではあるかもしれないけれども、とにかくいい勉強になり結構面白いです。かなりいい訓練になるはずです。だから、先見の目のすごさに脱帽しています。逆にすばらしいと思いましたよ。(^^\

>このような言語(?)なんか英語みたいなのをどこに書けばいいのかわかりま>せんし、コンパイルしようとしても原因がわからず作業が中止になったり>とてもできそうにありません。

最初は誰だってそうなんですよ。例えば僕は二年間もクラスって何かわからなくて、上級者の人に聞いたら一瞬で「えー、そんなことだったの?」とはとが豆鉄砲を食らったようになってしまったのを覚えているのです。それぐらい僕は無知でした。誰だって、一年ぐらいはコンパイルがなかなか通らなくてその原因は何かなんていうのはざらですが、要するにそういうときでも絶対に自分をほめてあげればいいのですよ。よくコンパイルなんてやったな~なんていうふうにね。(笑)

よく特別な人がプログラムを書いているような言われ方をする人や、そうしたことが特殊だという社会的な風潮があるのですけれども、いたって普通です。機械は二進法(電気が+と-しかないから、例えば数値で言えば1と0)しかわからないみたいですし、右といえば右にしか行きません。エラーなんてむしろ人間的でいいなと思いますよ。

ただ解決方法がわからない以前に、実現方法がわかりたいのが人情です。だから、ものすごく簡単な入門書で最初に勉強するとものすごく良いんです。僕は最初千円の本当に簡単な入門書からやりました。もちろん、上級者のアドバイスでそうしたのです。


>やっぱりまだ自分には向いていないのでしょうか?

将来的には向いているかもしれませんよ。僕はたぶんあなたよりもひどかった(笑)かもしれない。確かにいきなりは作れないんです。それは僕も一緒です。でも、少しでも勉強したり、プログラミングをしたりしたら、どんなことでも良いから、進歩したことになるから、自分を信じて、自分をほめてあげてください。あなたは少なくとも今面白いことをやろうとした。面白いことに向かって精進しようとこうして質問コーナーにまできちんと出向いた。立派だと思いますよ。(笑)勉強していると適正が出てくると思います。本当に僕は最初から書けた人なんて誰もいなかったんだと思うのですが。僕も偉いしなくてもいい苦労までしたもんですよ。(笑)

ま、とにかく思いつめるのは何にもなりません。せっかくのあなたの努力が無駄になるばかりか、あなた自身をつまらなくしてしまうかもしれません。コンパイルなんてものは百回のうち一回通ればそれでパソコン上ではソフトは動くことになっているのですから。あなたは何も心配することはありません。

今もしも目一杯頑張ってしまっているのだったら、むしろ少しゆっくり目に、わからなかったらこういうところに来て質問をしたりしていると良いかもしれませんよ。

まずは簡単なことからはじめましょう。でも、標準出力ができると、いろいろなことができるようになるので、続けられるのです。ほんの少し、ありの一歩の進歩でいいから、とにかく自分をほめてほめてほめまくることが大事なのです。やる気はものすごく感じていますよ!!!

みんな自分をほめながら、適当に好きなことをやってきただけです。でも、学校で教えてもらうのも一つの手ですよ。

あなたはすごくやる気が感じられた。だから、僕も教えていてとても気持ちが良かった。あなたが僕の書いた文書を読んでくれると信じて昨日も机の上でスヤスヤ眠りこけるまでワープロを打った。(笑)

とにかく最初は安くて分かり易い入門書がお勧めです。すごい簡単なことからできるようになって、基礎的な簡単な知識を身につけるといいでしょう。

もう僕は心配していないのです。きっと大丈夫ですよ。それにまたわからなくなったら聞きに来たらいいと思いますよ。みんなきっと親身に教えてくれるはずです。みなが一応に通ってきた道ですから、僕もそうですがみな苦労しているから、初心のころのことをあなたと同じ体験をみな体験してきているはずです。

初めからできる人なんていないから、気にしないでゆっくりじっくりと楽しんで、頑張ってくださいね。心から応援していますよ。ゆっくり、確実に、基礎をつくり、はしらを立てて、屋根を載せる。Javaで言うならば、最初に
標準出力でHelloWorld
変数
メソッド
クラス
制御文で
if分岐
for文ループ
switch文(選択)
while文
do
whiel文
try catch節(例外)
スレッド
フレームワーク
API
object指向(クラスやオブジェクトをものとして考える)
カプセル化・継承・多態性
Javaプログラムの基本
コレクションクラス
後はWEBアプリケーション開発にサーブレットに移行していく場合もありますが、まずは、簡単な上記を一通りやっておきましょう。すべて完璧でなくても良いですよ。すべて完璧にできる人はいませんからね。

だんだんリファレンスをひいたりすることができるようになるといろいろ面白くなってくると思うのです。人それぞれですが、メソッドがわからなくなるなんてしょっちゅうですから、僕はリファレンスから離れることはできません。でも、みんなそうだと思います。

とにかくあせらずこつこつと努力していくと良いと思いますよ。なれるのはゆっくりと、ほんの少しずつで良いのです。

あと、くれぐれも少しでも何かやったら、自分をほめてあげてくださいね。

回答ありがとうございました。
・・・脱帽です。はっきり言ってプログラミングやったことないのです。

そう思っていましたよ。でも、ゲームに目をつけたのはなかなかいいアプローチです。ただし、僕は二、三年Javaをかじりまくって、やっと文法を覚えてそれからいろんなアプリケーションを作っています。ゲームづくりはもう少し先の話ではあるかもしれないけれども、とにかくいい勉強になり結構面白いです。かなりいい訓練になるはずです。だから、先見の目のすごさに脱帽しています。逆にすばらしいと思いま...続きを読む

Qjavaで作れるもの

javaを勉強しているのですが、javaを勉強して、自分がいったいどんなものを作って行きたいのかイメージが湧いてきません。携帯などでできるゲームなどもjavaで作れるようなのですが特にゲーム作りに興味はありませんし。

自分がどのようなものを作りたいかはっきりした目的が持ちたいのですが、javaを勉強してどんなものが作れるようになるのかいまいち解からないのです。javaっていったいどんなものを作るのに役に立つのでしょうか?
教えてください! お願いします!! 

Aベストアンサー

Javaの学び始めのころは、何を作っても勉強になると思います。
何でもいいので、興味を惹かれるものを作ればいいと思います。
でも「何でもいい」っていわれても困ってしまいますよね。

本格的なものは初心者が一人で作るには難しいので、
こんなものはどうでしょうか。

携帯電話で動く電卓アプリ
今の携帯電話には元から電卓機能がついていますが、操作性とか結構気に入らないことがあるので、自分の思い通りに使いやすい電卓を作る。

ファイル名一括変更ツール
デジカメの写真ファイルに連番をつけたり、ファイル名を変更するツール。似たようなフリーソフトがたくさんありますが、自分の使い勝手のいいものを自分で作ります。

Eclipseプラグイン
Javaの開発環境としてEclipseを使っているのですが、これはプラグインをダウンロードしたり自分で作成することで機能拡張できるので、自分でほしいと思った機能を自分で作ることができます。

Robocode
プログラミングゲームと言われるもので、画面上で戦車を動かして対戦させるゲームです。戦車は、人がコントロールするのではなく、あらかじめ動作をJavaでプログラムしておいて動かします。AIをつんだ戦車同士の戦いと言うことになります。そのAIをJavaでプログラムします。

Javaの学び始めのころは、何を作っても勉強になると思います。
何でもいいので、興味を惹かれるものを作ればいいと思います。
でも「何でもいい」っていわれても困ってしまいますよね。

本格的なものは初心者が一人で作るには難しいので、
こんなものはどうでしょうか。

携帯電話で動く電卓アプリ
今の携帯電話には元から電卓機能がついていますが、操作性とか結構気に入らないことがあるので、自分の思い通りに使いやすい電卓を作る。

ファイル名一括変更ツール
デジカメの写真ファイルに連番をつ...続きを読む

Qeclipseとtomcatで404エラー

-----------------------------------
Windows7 Ultimate

eclipse Indigo
tomcat 5.5
-----------------------------------

eclipseとtomcatを使用して、JSPを動かそうとしています。
eclipseとtomcatとJDKはC:\pleiadesの下に配置しています。そしてワークスペースは
C:\workspace\Testとして登録しています。(ちなみに動的Webプロジェクトで作成しています)

既存のJSPファイルをeclipse上で右クリックして、サーバーで実行とすると、eclipseの画面上にきちんと表示されるのですが、その後、そこで動いていたtomcatを終了させて、eclipseの上部にあるtomcatのアイコンをクリックし、その後、通常のブラウザで表示させようとすると404エラーが出てしまいます。(http://localhost:8080/Test/test.jsp)

そもそも右クリック→実行の際に起動するtomcatとeclipse上部にアイコンで存在するtomcatはどう違うのでしょうか?

そしてどうすれば、上部のtomcat起動からブラウザで直接JSPを呼び出すことが出来るのでしょうか?

申し訳ありませんが、ご教授お願い致します。

-----------------------------------
Windows7 Ultimate

eclipse Indigo
tomcat 5.5
-----------------------------------

eclipseとtomcatを使用して、JSPを動かそうとしています。
eclipseとtomcatとJDKはC:\pleiadesの下に配置しています。そしてワークスペースは
C:\workspace\Testとして登録しています。(ちなみに動的Webプロジェクトで作成しています)

既存のJSPファイルをeclipse上で右クリックして、サーバーで実行とすると、eclipseの画面上にきちんと表示されるのですが、その後、そこで動いてい...続きを読む

Aベストアンサー

EclipseからTomcatを起動した場合、プロジェクトに生成されたWebアプリケーションのディレクトリをTomcatの公開ディレクトリに強制的に変更しています。普通に起動すると、プロジェクトのディレクトリはTomcatの公開ディレクトリにはなっていませんから表示は出来ません。

通常、Eclipseで作成したWebアプリケーションは、WARファイル(Webアーカイブ)として書き出し、それをデプロイします。Eclipseの「エクスポート」メニューでWARファイルを作成し、そのファイルをTomcatの「webapp」フォルダに入れてください。これで公開できるはずです。

QJavaで簡単なオンラインショッピングサイト

Javaで簡単なオンラインショッピングサイトを作ってみたいですが。参考になるホームページとか参考書などを教えていただけますか。そのサイトにかごを入れる形がある(楽天、Amazon,Yahooショッピングなどで見られるように)ことにしたいので、そのホームページか参考書にそいう情報が載っていれば本当に助かります。

Aベストアンサー

TECHNICAL MASTER はじめてのJSP&サーブレットプログラミング改訂版 Tomcat5+MySQL4対応
↑の本は情報が古いかもしれませんが入門書として私はおススメします。

ECサイトの説明もあるし作り方も当然あります、
MVCやDAOなどのデザインパターンにまで触れていて入門書としてはとにかくおススメ。
eclipseでの制作方法もあるしプラグインも豊富なのでそれだけでも意味があり!

大分前に発売した本なので情報は古いですが基礎を語っているので
特に問題はないと思います。
入門書の割りにこの本だけでもECサイトや作りたいものは作れるでしょう。

あとはロジックやセキュリティは別途調べるくらいかな?
本当にECサイトを作りたいならセキュリティに関しては
ちゃんと専門の本を買って調べる事をおススメします。
(マジでセキュリティ対策考えたら本だけじゃ難しいかも、とにかく色々調べて下さい。)

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

Q「eclipseで作るカレンダー(スケジュール管理画面)」

「eclipseで作るカレンダー(スケジュール管理画面)」

こんばんは。現在、eclipseでカレンダーを作りたいと思っております。また、一目でその月のスケジュールがわかるようにし、日付をクリックするとその日のスケジュールの詳細を表示できるようにしたいと思っております。カレンダーは1カ月ごとに日付を表示し、左右のボタンを押すと前の月、次の月に移動するものにしたいと思っております。

インターネット上でカレンダーの作り方を調べても全くわかりません。コマンドプロンプト上でカレンダーを表示するものしかないのです。そうではなくて、私はアプリケーションに以上の機能を持ったカレンダーを作りたいのです。どうやって作ったらいいのか、教えてください。私はjavaはまだまだ初心者ですが、よろしくお願い致します。

※なお、別の質問カテゴリーに同様の質問がございますが、ご回答を確実に頂くためにこちらのカテゴリーからも質問させていただきました。

Aベストアンサー

参考URLにあるような感じでしょうか?
自分もまだまだ初心者なので技術的なことは教えれませんが・・・・

参考URL:http://www.javadrive.jp/servlet/schedule/

QEclipseでのJSP・Servlet開発について(文字化け)

EclipseでJSP、Servletの開発をしております。
文字化けについての質問なのですが、ブラウザ上で表示される文字が
文字化けしてしまいます。JSPの頭に
<%@page contentType="text/html; charset=SHIFT_JIS"%>
と入れており、ブラウザでもエンコードはShift_JISとなっています。

自分なりに原因を調べたのですが、○○.jsp→○○_jsp.javaに変換?する際に
文字化けしているようで、Eclipse上でJSP、Servletを見ると普通なのですが、
○○_jsp.javaは見事に文字化けしていました。
文字化けした○○_jsp.javaを削除して再度表示(_jsp.javaの再作成)も試みた
のですが、同じ結果でした。

1ヶ月以上触っていないパッケージのソースも突然文字化けを起こしたので
原因も分からない状態です。
原因・直し方がお分かりの方、是非ともご指南下さい。
情報不足でしたら追記させて頂きますので、どうぞ宜しくお願い致します。

Aベストアンサー

Eclipseの文字コードの設定は、これから作成するファイルに関しては
「ウィンドウ->設定->一般->ワークスペース」で
「テキスト・ファイル・エンコード」にて指定できます。
ただし、これだとすでに作成したファイルの文字コードは変更されないため、
対象ファイルを右クリックし、「プロパティ->リソース」で変更できます。

>テキストエディタで開くと文字化けしていないのに、何故かEclipseで開くと文字化けし、稀に(きっかけは不明だが)ブラウザ(FireFox)上でも文字化けした状態で表示される。

これも上記で設定すれば解決すると思います。
テキストエディタは何を使っているのかわからないですが、テキストエディタ側ではShift-jisで読み込んで、EclipseではUTF-8?で読み込んでいるために起きているのが原因だと思います。

ちなみに、JSPをインクルードする際、インクルードされるJSPに
<%@ page pageEncoding="SHIFT-JIS" %>
を指定しないと文字化けする可能性があります。(インクルードする側とされる側両方にContentTypeをしていすると、される側のContentTypeは無効化され、される側の文字コードを判断する手立てがなくなってしまうため)

Eclipseの文字コードの設定は、これから作成するファイルに関しては
「ウィンドウ->設定->一般->ワークスペース」で
「テキスト・ファイル・エンコード」にて指定できます。
ただし、これだとすでに作成したファイルの文字コードは変更されないため、
対象ファイルを右クリックし、「プロパティ->リソース」で変更できます。

>テキストエディタで開くと文字化けしていないのに、何故かEclipseで開くと文字化けし、稀に(きっかけは不明だが)ブラウザ(FireFox)上でも文字化けした状態で表示される。

これ...続きを読む

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

Q空の文字列とnullと""

java初心者です。
空の文字列とnullと""の3つの関係がよくわかりません。

TextFieldを使った簡単なプログラムを作りました。そこで、”TextFieldに何も入力されていないこと”を判定する文を書こうと思ったのですが、どう書けばいいのか迷いました。

TextFieldのオブジェクトをtfとして、tf.getText()==""かtf.getText()==nullで大丈夫だと思いましたが、実行してみると、どちらを用いても判定できませんでした。結局、tf.getText().length()==0で判定できました。そこで、リファレンスを見ると、getText()はデフォルトで空の文字列を返すと、書いてありました。

したがって、「""とnullは空の文字列とは異なる」という理解に至ったのですが、では空の文字列とは何なのかという疑問がわいてきました。

また、自分は""とnullの違いもよくわかっていません。""とnullが異なるものである、ということはわかるのですが・・・

質問をまとめると
・空の文字列とは何なのか?
・空の文字列は""やnullとどう違うのか?
です。よろしくお願いします。

java初心者です。
空の文字列とnullと""の3つの関係がよくわかりません。

TextFieldを使った簡単なプログラムを作りました。そこで、”TextFieldに何も入力されていないこと”を判定する文を書こうと思ったのですが、どう書けばいいのか迷いました。

TextFieldのオブジェクトをtfとして、tf.getText()==""かtf.getText()==nullで大丈夫だと思いましたが、実行してみると、どちらを用いても判定できませんでした。結局、tf.getText().length()==0で判定できました。そこで、リファレンスを見ると、getText()はデフ...続きを読む

Aベストアンサー

tf.getText() == ""
では、オブジェクト比較になってしまうので、当然NGです。

"".equals(tf.getText())

とすれば良いでしょう。

空文字と呼ばれているものは、""と同じですよ。
Stringクラスで考えると、インスタンス化がされているが、中身の文字列が""の状態にあります。

nullは、そもそもオブジェクトすら設定されていない状態です。
例えばStringBufferクラスの変数を宣言しても、インスタンス化されていない状態、それがnullです。

Q空欄のテキストフィールドの判定の方法

HTMLのフォームに入力されたテキストフィールドの値より処理を変化させる
ロジックを作ろうと下記のようにプログラムしました。
テキストフィールドに何か入力して送信した場合は、elseの処理を正常に行ってくれるのですが、
未入力でsubmitした場合だと、処理が止まってブラウザ上には真っ白な画面しか表示されません。
やはり判定文が悪いのでしょうか?
未入力のテキストフィールドの判定方法を教えてください。

-----------------------------------------------------
String tf1 = request.getParameter("text1");
String tf2 = request.getParameter("text2");

if((tf1 == null) || (tf2 == null)) {
 HttpSession session = request.getSession();
 session.setAttribute("errmessage", "未入力の項目があります。");

 RequestDispatcher dispatcher
    = request.getRequestDispatcher("/err.jsp");
 dispatcher.forward(request, response);
}
else {
 //テキストフィールドに何かが入力されている場合の処理
}

HTMLのフォームに入力されたテキストフィールドの値より処理を変化させる
ロジックを作ろうと下記のようにプログラムしました。
テキストフィールドに何か入力して送信した場合は、elseの処理を正常に行ってくれるのですが、
未入力でsubmitした場合だと、処理が止まってブラウザ上には真っ白な画面しか表示されません。
やはり判定文が悪いのでしょうか?
未入力のテキストフィールドの判定方法を教えてください。

-----------------------------------------------------
String tf1 = request.getPara...続きを読む

Aベストアンサー

空白の文字列が設定されているはずなので、

if (tf1 == null || tf1.equals("") || tf2 == null || tf2.equals("")) {
  …
}

とした方が良いでしょう。tf1 == null は、フォームの方の記述を間違う
可能性もあるので、念の為残しておきましょう。


人気Q&Aランキング