忙しい現代人の腰&肩のお悩み対策!

いつもお世話になっております。
いま、コマンドラインで入力された値の入力チェックを作成しているのですが、空白値のチェックがうまくいきません。スペースのチェックはできました。
また、参考URL等ございましたら、教えていただけないでしょうか。

// 未入力チェック
private boolean check1(String input){
for (int i = 0; i < input.length(); i++) {
char a = input.charAt(i);
if (a == ' ') {
return false;
}
}
return true;
}

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

A 回答 (2件)

空の文字列または空白のチェックであれば、Stringクラスのtrimメソッドとlengthメソッドを利用すればいいのではないでしょうか?


例えば下のようなメソッドでどうでしょう?

private boolean check2( String input ) {
if ( input.trim().length() == 0 ) {
return false;
} else {
return true;
}
}

これで空白のみ、または何も入力されていない場合にはfalseが返されます。
求めていらっしゃるものがいまいち判らないので、これでOKなのか判りかねますが…。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
trimメソッドというものを知らなかったので、すごく参考になりました。無事yusuke0112さんの方法で解決できました。ありがとうございました。

お礼日時:2005/07/20 11:48

これですと空白のときfor文では i<0なので


for文は通らないですよね。

// 未入力チェック
private boolean check1(String input){
for (int i = 0; i < input.length(); i++) {
char a = input.charAt(i);
if (a != ' ') {
return true;
}
}
return false;

ではいけませんか。
    • good
    • 0

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

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

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

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

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

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空欄のテキストフィールドの判定の方法

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データ未入力時のエラー処理がうまくできません・・・

現在、JSPファイルを作成しています。その内容は、HTMLで表示されたテキストボックスにデータを入力し、
次のページでそのデータを表示させるものです。
データが未処理の場合のJavaのプログラムは、以下のようになります。

if(txtInpA == "") {
データが未入力時のエラー処理
}else{
データが入っているときの処理  
}
*「txtInpA」にデータが入っています。

しかし、このプログラムだと正常に処理してくれません。
「""」の代わりに「null」としても同じです。
また、データを取得するメソッド「request.getParameter()」を使っても
同様にうまく処理をしてくれません。
なにかよい方法があればぜひ教えてください。お願い致します。

Aベストアンサー

 たいていの人が一度はハマることですが、Javaでは文字列同士を「==」で比較するのは誤りです。

 Stringのメソッドであるequals()やlength()を使ってください。

txtInpA.equals("") == true

txtInpA.length() == 0

Qequalsの逆

javaで、文字列の場合は比較演算子の「==」は用いずに

if ((str1.getText()).equals(str2)){
(※…str1,2は文字列)

と書きますよね?
この逆で、文字列str1とstr2は等しくないとき、にはif以下の条件文をどのように書けばよいでしょうか?

Aベストアンサー

>if !((str1.getText()).equals(str2)){

あくまで
if(){
}


!(str1.getText()).equals(str2)
が入っているので
if !((str1.getText()).equals(str2)){
じゃなくて
if (!(str1.getText()).equals(str2)){
こう。

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Q数字か文字列かを判定する関数

 JAVAの初心者です、宜しくお願いします。
  
 テキストボックスに入力された値を、数字か文字列かを判定する関数ってありますか、VBでは「isNumeric」とかがあるのですが、JAVAではヒットしませんでした。

 どこからどのように調べるのでしょうか。
 いいサイトがあれば教えて下さい。

Aベストアンサー

・ たとえば、整数か文字列かの場合、クラスIntegerのparseInt(String s)メソッドを使い、例外(NumberFormatException)が発生するかどうかで判断します。

以下のコードを参考にしてみてください。
------------------------------------------------------------
public class ParseIntSample {

public static void main(String[] args) {
System.out.println(isInteger("123"));
System.out.println(isInteger("123A"));
}

static boolean isInteger(String num) {
try {
int n = Integer.parseInt(num);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
------------------------------------------------------------
結果
true
false
------------------------------------------------------------
実数の場合は、Double.parseDouble(String s)があります。
これも、例外(NumberFormatException)を発生します。

・ たとえば、整数か文字列かの場合、クラスIntegerのparseInt(String s)メソッドを使い、例外(NumberFormatException)が発生するかどうかで判断します。

以下のコードを参考にしてみてください。
------------------------------------------------------------
public class ParseIntSample {

public static void main(String[] args) {
System.out.println(isInteger("123"));
System.out.println(isInteger("123A"));
}

static boolean isInteger(String num) {
try {
int n = Integer.parse...続きを読む

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になっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

QJSP/サーブレットで一般的な入力チェックの仕組みについて

JSP/サーブレットで一般的な入力チェックの仕組みについて

いつもお世話になります。

JSP/サーブレットでWebシステムを作っています。
特別なフレームワークは使っておらず、素のJavaだけで作っているのですが、JSP/サーブレットでWebシステムを開発する場合で、入力チェックでエラーがあった場合、
下記のような動作を実現したいのですが、一般的にはどのような作りになるのでしょうか。

・画面の入力内容はそのまま
・メッセージ領域にエラーメッセージを表示
・エラーがあった項目を赤くする

これらはJavaScriptでしか実現する方法は無いように思っていますが、できればJavaScriptは
使用しない方向で、最悪3番目はできなくてもよいです。

宜しくお願い致します。

Aベストアンサー

JSPを使っているならできると思うけど。

・画面の入力内容はそのまま
・メッセージ領域にエラーメッセージを表示
・エラーがあった項目を赤くする

どれもHTMLの加工の問題でしょう?

Servletがリクエストを受け取る
→入力チェック
→エラーがあったら前の画面のJSPを表示する
→JSP表示の際に、入力された内容をHTMLにセットする
→メッセージ領域にえらーメッセージを表示する
→ついでにエラー項目も赤くする

全部JSPでできる内容よね。


一般的なつくりとしては
まず、その画面の入力項目に対応したBeanを用意する。
Servletがリクエストを受け取り、リクスエトを解析しBeanに格納する。
Beanをその画面用のチェッククラスで入力チェックする。
エラーがなければ次画面を、エラーがあれば呼び出し元画面のJSPを要求。
エラーがあった場合、エラーメッセージをセッションなりリクエストなりに格納。
JSP表示時にBeanに格納されている内容を出力。
エラーメッセージが格納されていればそれを出力。
こんな感じね。

赤くするのはBeanについでにフラグを持たせておけば
JSPで判断できるんじゃない?

JSPを使っているならできると思うけど。

・画面の入力内容はそのまま
・メッセージ領域にエラーメッセージを表示
・エラーがあった項目を赤くする

どれもHTMLの加工の問題でしょう?

Servletがリクエストを受け取る
→入力チェック
→エラーがあったら前の画面のJSPを表示する
→JSP表示の際に、入力された内容をHTMLにセットする
→メッセージ領域にえらーメッセージを表示する
→ついでにエラー項目も赤くする

全部JSPでできる内容よね。


一般的なつくりとしては
まず、その画面の入力項目に対応したBeanを用意...続きを読む

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

Qフォーム上で押されたボタンによってサーブレットの処理を変えたい

Urizakaです。
さて、さっそく質問です。
JSPの同一フォーム上に「登録」「修正」「削除」のボタンを置き、その押された
ボタンによってサーブレット内での処理が切り替わる(具体的には、違う
SQL文を実行し、違うJSPページをgetRequestDispatcherメソッドで生成
する)ようにしたいのですが、どのようにすればよいのでしょうか?
もちろんそれぞれの処理に対して別々のサーブレットを作り、javaScript
でそれぞれのサーブレットへ飛ぶように制御するという処理も考えたことは
考えたのですが、できれば一つのサーブレットで済ませたいと考えたもので
…宜しくお願いします。

Aベストアンサー

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(MyCommand){
document.MyForm.MySubmit.value=MyCommand;
document.MyForm.submit();
}
</script>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Toroku")){...}
if (MyAction.equals("Shusei")){...}
if (MyAction.equals("Sakujo")){...}



---------------------------------------------------

こんな感じでどうでしょうか。
ちなみにこうやって書いておくと、フォームのボタンからじゃなくても
アンカーをクリックすることで同じ効果が出せそうな……

<a href="JavaScript:func('Toroku')">登録</a>

あ、でもまたボロが出そうなのでこの辺で(^_^;)

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=M...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング