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

こんにちは、学校の課題で重力3目並べを作っていますが、式の型、int型、配列型というところでまったくつまずいてしまっています。どうか課題提出できますようお助けいただけますでしょうか。お願いいたします。私はJUNO eclipsをつかっております。
エラーは、34,50,53,66,118行目で”式の型は配列方でINTに解決済みである必要があります”です。
(申し訳ありません。文字数ぎりぎりで詰めて質問させていただきした。読みづらですがご容赦ください。
package Colonne5;
public class Colonne5 {
final static int jouer1 = 0;
final static int jouer2 = 1;
final static char [] pion = new char [] {'*','0', ' '};
final static int vide = 2;
static final int PionEtoile = 1;
static final int PionRond = -1;
final static int Dwidth = 5;
final static int Dheight = 5;
final static int PreCOL = 0;
final static int DerCOL = Dwidth - 1;
final static int Hautligne = Dheight - 1;
static int Basligne = 0;
final static int H = 0 ;
final static int V = 1 ;
final static int[] HOR = new int[] {1, 0} ;
final static int[] VER = new int[] {0, 1} ;
final static int[] UP = new int[] {1, 1} ;
final static int[] DOWN = new int[] {1, -1} ;
final static int[][] DIRECTION = new int[][] {HOR, VER, UP, DOWN} ;
private static int[][] damier ; // grid
private static int name ; // player name
private static char player ; // turn of gamer
private static int result ;
private static int impactLine ;
public Colonne5 (int john){
damier = new int[Dwidth][Dheight];
for (int i = 0 ; i < Dwidth; i++) {
for (int j = 0; j < Dheight; j++) {
damier[i][j] = vide;
}
}
this.name = john;
player = jouer1;
result = vide;
}
private boolean Libre(int column){ //グリッドが空いているか判断
return damier[column][Hautligne]==vide;
}
private boolean damierRempli() {
int column = PreCOL;
while (column <= DerCOL) {
if (Libre(column))
return true ;
column++ ;
}
return false ;
}
private void jouerCoup() throws IOException { //ゲーム開始
while (result == vide && damierRempli()) {
afficher() ;
int column =name[player];
System.out.print("Enter " + (PreCOL + 1) + " to " +(DerCOL +1) + " ?") ;
System.in.read();
sommetColonne(column) ;
if (coupGagnant(player, impactLine))
result = player ;
else
demanderCoup() ;
}
afficher() ;
if (result == vide)
System.out.print(" partie nulle ") ;
else
System.out.println(name[result] + " gagne") ;
}
private boolean coupGagnant (int column, int ligne) { //勝者判断
int i = 0 ;
while (i < DIRECTION.length) {
if (coupGagnant(column, ligne, DIRECTION[i]))
return true ;
i++ ;
}
return false ;
}
private static boolean coupGagnant(int column, int ligne ,int[] dir) {
int nextColumn = column + dir[H] ; int nextLine = ligne + dir[V] ;
int forward = 0 ;
while (damier[nextColumn][nextLine] == player) {
nextColumn += dir[H] ; nextLine += dir[V] ; forward++ ;
}
nextColumn = column - dir[H] ; nextLine = ligne - dir[V] ;
int backward = 0 ;
while (damier[nextColumn][nextLine] == player) {
nextColumn -= dir[H] ; nextLine -= dir[V] ; backward++ ;
}
return backward + 1 + forward >= 3 ;
}
private static int demanderCoup() { //どちらのプレイヤーの順番か判断
if(player==jouer1){
player = jouer2;
}
else
player = jouer1;
return player;
}
private void sommetColonne(int column) { //現在の駒の一番上を取得判断
if(!Libre(impactLine))
throw new RuntimeException(" colonne pleine ") ;
impactLine = Hautligne ;
while (impactLine > Basligne && damier[Dheight-1][impactLine-1] == vide)
impactLine-- ;
damier[Basligne][impactLine] = player ;
}
private void afficher() { //ゲームの表示
for (int column = PreCOL ; column <= DerCOL ; column++)
System.out.print("| " + (column + 1) + " ");
System.out.println("|");
for (int line = Hautligne ; line >= Basligne ; line--) {
for (int column = PreCOL ; column <= DerCOL ; column++)
System.out.print("| " + pion[damier[column][line]] + " ") ;
System.out.println("|");
}
}
public static void main(String[] args) {
Colonne5 joue = new Colonne5(name) ;
joue.jouerCoup();
}
}

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

A 回答 (3件)

mainメソッドの



Colonne5 joue = new Colonne5(name) ;
これをみる限り、nameは配列ではないんですよね(変数nameフィールドがそのまま引数に入ってしまっているという問題※はありますが)。

一方、
System.out.println(name[result] + " gagne") ;

となっており、利用するときは配列になっているという矛盾があります。
このあたりの仕様がためをして、プログラムすることが必要だと思います。

ではどうなるべきかと考えてみると、jouer1,2 で先攻後攻が定義されていて、playerに現在の先攻後攻が格納されるようなので、次のようになると考えられます。(一案です)
変数nameの定義:
String [2] name;
Colonne5の生成:

Colonne5 joue = new Colonne5(new String[]{"John", "Jane"});

コンストラクタでのnameの定義:
this.name[0] = john[0];右辺 new String(john[0]);かもしれない
this.name[1] = john[1];

sommetColonneメソッドから引数columnを外す(内部で使っていないから)

※前提として質問のプログラムから読み取れる限り

あと、クラス変数(static)を使わなくてはならない理由が分からない変数があります。
damier以下です。以下URLを参考ください。

http://www.javaroad.jp/java_class9.htm
    • good
    • 0
この回答へのお礼

ありがとうございます。そうですね、おっしゃる通りです。仕様を固めてからといいますか、もう1度仕様を考え直してみます。ご親切に参考URLまで教えていただき感謝しております。

お礼日時:2013/06/12 22:58

「芋ずる式にエラーになってしまって困っています」ってのは, 具体的には


・どのようなプログラムで
・どのようなエラーが出ている
のでしょうか? あと, ここに至るまでコンパイルしたことはなかったんですか?

それにしても, ここまで英語とフランス語がごっちゃごちゃになると, なんというか笑える. ど~せなら全部フランス語で押し通してほしかった.
    • good
    • 0

throws IOExceptionは、特にthrow指定なかったので、(エラーが出るためこれを省いた上で)javacで履かれた以下のエラー


 Colonne5.java:53: 配列が要求されましたが、int が見つかりました。
 int column =name[player];
^
 Colonne5.java:66: 配列が要求されましたが、int が見つかりました。
 System.out.println(name[result] + " gagne") ;

に対して、定義を見ると、次のようになっています。

 private static int name ; // player name

nameを配列にしないといけません。
    • good
    • 0
この回答へのお礼

ありがとうございます。ビギナーですのでかなり難しい課題なのですが、教えていただいたように配列にしてみましたが書き方が悪かったようでやはりエラーをはいてしまいます。private static int name ;を配列として宣言してint[] name;にしまして、本体の中もこの書き方に適したようにしたのですが.....そうすると芋ずる式にエラーになってしまって困っています。確かにnameは配列のような感じで、53と66行目でname[player],name[result]という形で、この部分がやはりとてもややこしく難しいです。
もうすこし、色々変えてみます。早々のお答え本当にありがとうございます。

お礼日時:2013/06/10 20:08

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

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

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

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

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

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

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

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)){
こう。

QArrayListを使った多次元配列の作成について

ArrayListで可変長配列を扱っているのですが、
2次元可変長配列を用いる必要が出てきたので、
下記のように変更したのですがうまくいきません。
何が悪いのか教えていただけませんでしょうか?

-----------------------------------------
ArrayList cars=new ArrayList();
cars.add("フェラーリ");
cars.add("ポルシェ");
cars.add("メルセデスベンツ");
for(int i=0;i<cars.size();i++){
 String str=(String)cars.get(i);
 System.out.println(str);}
-----------------------------------------
上記から下記のように変更しました。
-----------------------------------------
ArrayList[] cars=new ArrayList[3];
cars[0].add("フェラーリ");
cars[0].add("ポルシェ");
cars[0].add("メルセデスベンツ");
for(int i=0;i<cars[0].size();i++){
 String str=(String)cars[0].get(i);
 System.out.println(str);}
-----------------------------------------
エラーは「Exception in thread "main" java.lang.NullPointerException」です。
どうやら初期配列が10ではなく3となってしまっているようです。

ArrayListで可変長配列を扱っているのですが、
2次元可変長配列を用いる必要が出てきたので、
下記のように変更したのですがうまくいきません。
何が悪いのか教えていただけませんでしょうか?

-----------------------------------------
ArrayList cars=new ArrayList();
cars.add("フェラーリ");
cars.add("ポルシェ");
cars.add("メルセデスベンツ");
for(int i=0;i<cars.size();i++){
 String str=(String)cars.get(i);
 System.out.println(str);}
---------------------------------------...続きを読む

Aベストアンサー

こんにちは。

>ArrayList[] cars=new ArrayList[3];
はArrayList型のオブジェクトのインスタンス
を格納する箱を3個作成しただけなので、
この時点では、
cars[0] = null
cars[1] = null
cars[2] = null
となっています。ですから、当然
cars[0].add("フェラーリ");
などとやると、NullPointerExceptionが
発生します。これをさけるには、
cars[0] = new ArrayList();
cars[1] = new ArrayList();
cars[2] = new ArrayList();
とする必要があります。

Q非staticフィールドを参照できない理由とは

 java勉強中です、宜しくお願いします。

 下のようなプログラムを書き「Test1」をコメントアウトしたら、
「非staticフィールドをstatic参照できません。」というエラーが
出ました。
 「Test1 t」をグローバル変数で定義したのですが、やはりを
「static」からは見れないということでしょうか。

 「main」は特別な関数というのは分るのですが、staticフィールドとか
クラスオブジェクトしか、main()からは覗けないという設計思想(?)
とかはどのようなものなのでしょうか。

 逆に覗けるのが可能ならばどのような不都合が生じるのでしょうか。

 何かしら非常に不便を感じて使い勝手が悪いという気がして仕方ない
のですが、特別にこうしなけらばならないとか、今までの他の言語であ
った不具合(ex 隠蔽機能)を更に強化したためとかと言う理由があるの
でしょうか。 

==========================================================

public class Test1
{
Test1 t;

void calc()
{
int a = 2;
int b = 3;

System.out.println(a+b);
}

public static void main(String args[])
{
/*Test1*/ t = new Test1();
t.calc();
}
}

 java勉強中です、宜しくお願いします。

 下のようなプログラムを書き「Test1」をコメントアウトしたら、
「非staticフィールドをstatic参照できません。」というエラーが
出ました。
 「Test1 t」をグローバル変数で定義したのですが、やはりを
「static」からは見れないということでしょうか。

 「main」は特別な関数というのは分るのですが、staticフィールドとか
クラスオブジェクトしか、main()からは覗けないという設計思想(?)
とかはどのようなものなのでしょうか。

 逆に覗けるのが可能ならば...続きを読む

Aベストアンサー

> 私が更に疑問を持ったのは、何故javaに「static」という定義(考え方)があるのか、また
> 「main」をstaticにしてやる必要があるのか、という内容についてです。

本当にそういうことを知りたいというよりは、staticなmain()メソッドからインスタンス変数に直接アクセスできないことが不満であるだけのように読めます。

しかし、staticメソッドからでもインスタンス変数にアクセスすることはできるんです。「どのインスタンスが持っているインスタンス変数」にアクセスしたいのかを指定する必要があるだけです。

public static void main(String args[])
{
Test1 x = new Test1();
/* 変数xに代入されているインスタンスのtにアクセスする */
x.t = ~;
}

もっとも、質問文にある内容ならば変数tはmain()メソッドのローカル変数のままにするか、Test1クラスのクラス変数にしてしまえばそれで良さそうです。インスタンス変数にしたい理由がありますか?

public class Test1
{
static Test1 t; /* クラス変数 */

public static void main(String args[])
{
t = new Test1();
t.calc();
}

/* calc()メソッドの定義は省略*/
}

> 私が更に疑問を持ったのは、何故javaに「static」という定義(考え方)があるのか、また
> 「main」をstaticにしてやる必要があるのか、という内容についてです。

本当にそういうことを知りたいというよりは、staticなmain()メソッドからインスタンス変数に直接アクセスできないことが不満であるだけのように読めます。

しかし、staticメソッドからでもインスタンス変数にアクセスすることはできるんです。「どのインスタンスが持っているインスタンス変数」にアクセスしたいのかを指定する必要があるだけです...続きを読む

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

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

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

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


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

Aベストアンサー

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

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

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

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

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

QJava 他クラスの呼び出しが上手くいきません。

Java初心者です。
過去Q&Aとして掲載されていた「iアプリでのクラスファイルが複数ある時の画面遷移」と同趣旨のことがしたく、記事を参考にプログラムを組んでみました。
しかし、コンパイルの際、画面遷移のための別クラスファイルを呼び出しインスタンス化するところで生じる「シンボルを見つけられません。」というエラーの原因がつかめず困っています。
作成したプログラムのどこがいけないのか、ご教示いただければ幸いです。

作成したプログラム
=========
Test01.java
=========
import com.nttdocomo.ui.*;

public class Test01 extends IApplication implements ComponentListener{
Button btn1;
Label lbl1;
public void start() {
Panel p1 = new Panel();
p1.setTitle("p1");
Label lbl1=new Label("p1に居ます。");
p1.add(lbl1);
Button btn1=new Button("next");
p1.add(btn1);
p1.setComponentListener(this);
Display.setCurrent(p1);
}
public void componentAction(Component source, int type, int param) {
if(type == ComponentListener.BUTTON_PRESSED) {
if(source==btn1){
Test02 test02 =new Test02(); //ここでエラーが発生します。
Display.setCurrent(test02);
lbl1.setText("p2に遷移");
}
}
}

}

============
Test02.java
============
import com.nttdocomo.ui.*;

public class Test02 extends IApplication implements ComponentListener{
Button btn1;
Label lbl1;
public void start() {
Panel p2 = new Panel();
p2.setTitle("p2");
Label lbl1=new Label("p2に居ます。");
p2.add(lbl1);
Button btn1=new Button("next");
p2.add(btn1);
p2.setComponentListener(this);
Display.setCurrent(p2);
}
public void componentAction(Component source, int type, int param) {
if(type == ComponentListener.BUTTON_PRESSED) {
if(source==btn1){
lbl1.setText("p1に遷移"); //コンパイルエラーは生じませんが、ラベル表示の切り替えができません。
}
}
}

}

Java初心者です。
過去Q&Aとして掲載されていた「iアプリでのクラスファイルが複数ある時の画面遷移」と同趣旨のことがしたく、記事を参考にプログラムを組んでみました。
しかし、コンパイルの際、画面遷移のための別クラスファイルを呼び出しインスタンス化するところで生じる「シンボルを見つけられません。」というエラーの原因がつかめず困っています。
作成したプログラムのどこがいけないのか、ご教示いただければ幸いです。

作成したプログラム
=========
Test01.java
=========
impo...続きを読む

Aベストアンサー

「シンボルを見つけられません。」でコンパイルできないのは、
Test01クラスからTest02クラスを見つけられないことが原因かと思われます。

No.1様は
==
Test01とTest02は同じパッケージですか?
違うのであればTest01にimport xxxx.Test02;を記述する必要がある
==
とおっしゃってるように思います。


原因がご理解できないようでしたら
まずはJavaの勉強をしたほうがよろしいかと思います。

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「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クラス間でのデータ参照

あるクラスでArrayListにデータを格納し、そのデータを別のクラスで使いたいと思っています。

Javaでそれをするために、どのようにすればよいのでしょうか?

何か知識がある方教えてください。

Aベストアンサー

> つまり、教えてもらった方法は、
> *リストを作るクラス
> *そのリストを使って処理をするクラス
> *命令を出すクラス
> の三つに分かれているということですか?

はい、
Aru: リストを作るクラス
Betsu~3: そのリストを使って処理をするクラス
です。

別のクラスがあるクラスのインスタンスの生成から管理していれば,
命令を出すクラスを作らずともかまいません。
class Betsu4 {
public void shori() {
Aru aru = new Aru();
aru.createList();
ArrayList list = aru.getList();
}
}


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

人気Q&Aランキング