private変数を設定(Java)

このQ&Aのポイント
  • private変数を設定する方法について質問します。
  • クラスaにあるprivate変数とメソッドの使い方について質問します。
  • 別のクラスでStringTokenizerを使用してsNameに値を代入したいが、エラーが出てしまいます。
回答を見る
  • ベストアンサー

private変数を設定(Java)

いろいろ試したのですが、よく分からないので質問します。 クラスaで private String sName; という属性と、 public void setsName(String sPassedName) { sName = sPassedName; } というメソッドがあり、 別のクラスで、 StringTokenizer st = new StringTokenizer("Test 123"); というのがあった時に、この「Test」をsNameに代入しようとしているのですが、 まず、 a aObject = new a(); と新しいaオブジェクトを作り aObject.setsName(st.nextToken()); とやったのですが、cannot resolve symbolの表示が出ています。 st.nextToken())ってStringだからキャストとかしなくていいと思ったのですが、何がまずいのでしょうか?

  • fuyu
  • お礼率69% (145/210)
  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

どういろいろ試したのかが分からないのですが、 > st.nextToken())ってStringだからキャストとかしなくていいと思ったのですが これは、思っている通りで良いです。多分、StringTokenizer の import を していないんじゃないですか? 以下、試してみたソースを。名前の付け方は、質問の内容に極力従ってます。 import java.util.StringTokenizer; class a {   private String sName;   public void setsName(String sPassedName)   {     sName = sPassedName;   }   public String getsName()   {     return sName;   } } class test_f {   public static void main(String[] args)   {     a aObject = new a();     StringTokenizer st = new StringTokenizer("Test 123");     aObject.setsName(st.nextToken());     System.out.println("sName is " + aObject.getsName());   } }

fuyu
質問者

補足

今回のプログラムでは、BufferedReader(のファイルリーダー),BufferedWriter(のファイルライター),Vector,StringTokenizerを使っていて、 import java.io.*; import java.util.*; をインポートしています。 インポートに関してはよく分かっていないのですが、何か足りないでしょうか? もしここで問題なければ他に原因があるのかもしれません。 StringTokenizer、aオブジェクトの宣言等のスコープでエラーになっていることは、多分ないと思います。

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

状況が良く分からないので、とりあえずアドバイスできることは、 ・No.1 の回答で私が示したソースは、コンパイルできて、動作もしますか? ・「cannot resolve symbol」のエラーメッセージを変に省略しないで、全部の  メッセージと、そのソースの該当行を、ここに書き込んでみると、違った  アドバイスが有るかも。 といったことぐらいかな。

fuyu
質問者

お礼

回答ありがとうございます。 a-kumaさんに書いていただいたソースをコンパイルしてみると無事に通りました。 落ち着いて自分のソースをもう一度よーく見てみると・・・・ 二つあるファイルのうち、片方のファイルのEmployeeがEemployeeになっていました。 お手数かけて大変申し訳ありません。 もう一つ質問立ち上げますのでもしお時間ありましたらお答えいただけるとうれしいです。今度はちゃんと(というのも変ないい方ですが)文法的な間違いとかがあると思います。

関連するQ&A

  • javaを用いて,a列,b列の空白数を数えたい.

    javaを使って,a列,b列の空白数を数えるプログラムを教えてください. 自分なりに色々と考えてみましたが全くわかりません… おカぞえ,どうぞよろしくお願いいたします. 初心者のため,具体的に教えていただけるとありがたいです. 以下に途中まで考えたコードを添付いたします. 自分としましては,空白に-9を代入し,後でそれを数えるというような方法を考えました. import java.io.*; import java.util.*; public class PTMain { public static void main(String[] args) { try{ BufferedReader fin = new BufferedReader(new FileReader("test.csv")); String ss ; String a; String b; fin.readLine(); while((ss=fin.readLine())!=null){ StringTokenizer st =new StringTokenizer(ss,","); a = st.nextToken(); b = st.nextToken(); if (a.equals(null)){ a="-9" ; //もし空白があるなら-9を代入したい } if (b.equals(null)){ b="-9" ; } System.out.println("a = " + a); System.out.println("b = " + b); } } } } /* test.csv a,b,c,d 5,6,3, 4,,8,1 ,6,7, 5,7,8,8 9,1,45,1 6,6,, ,1,8,5 5,4,5, */

  • カンマで区切られたメールアドレスを配列に格納したい場合

    いつもお世話になっております。 下記のようなStringのデータを配列に格納したいのですが、 private static final String MAILS = "test1@test.com,tes,t2@tes,t.net,test3@te,st.jp"; 普通にカンマで分割するとメールアドレスの形式はめちゃくちゃで配列に格納されてしまいます。 StringTokenizer st = new StringTokenizer(MAILS, ","); String [] mailList = new String[st.countTokens()]; int i = 0; while (st.hasMoreTokens()) { mailList[i] = st.nextToken(); i++; } test1@test.com tes,t2@tes,t.net test3@te,st.jp 上記のようにちゃんとしたメールの形式で配列に格納するにはどうすればいいでしょうか? ご教授頂ければ幸いです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • StringTokenizerについて(エラー)

     java初心者です。この度、突貫工事でjavaのネットワークプログラムを作らねばならず、本などを参考にしながら独学でサーバーとクライアントを作成しています。 クライアントは正常に稼働するようなのですが、サーバーにはStringTokenizerの使い方に問題があるらしく、NullPointerExceptionというエラーが出て受信がうまくできません。(以下、エラーが検出される個所を抜粋) …………… ////runメソッド //クライアント処理スレッドの本体です public void run(){ try{ //logout受信まで繰り返します while(true){ //クライアントからのコマンドを読み取ります String line = in.readLine(); //nameが空の場合にはログインコマンドのみを受け付けます。 if(name == null){ StringTokenizer st= new StringTokenizer(line);////エラー箇所 String cmd = st.nextToken(); if("login".equalsIgnoreCase(cmd)){ name = st.nextToken(); server.loginUser(name);//loginメソッドへ } }else{ //nameが空でない場合はログイン済みなのでコマンドを受け付けます。 StringTokenizer st = new StringTokenizer(line); String cmd=st.nextToken();//コマンドの取り出し if("logout".equalsIgnoreCase(cmd)){ server.logoutUser(name);//logoutメソッドへ break;//logoutの場合にはループを終了します。 } } } ……………… 提出期限が迫っており、また、周囲にjavaの心得がある人がいないので困っています。不勉強で申し訳ありませんが、どなたか回答宜しくお願いします。 追伸:プログラムに関する知識が乏しいので用語の使い方が間違っているかもしれませんがご容赦ください。。。

  • 【Java】変数?定数?

    ↓のようなjavaのクラスの中で各メソッド毎にMETHODという名の文字列をfinalで定義した場合なのですが、METHODは変数ですか?定数ですか? public class test { public void test1 () { final String METHOD="test1"; system.out.println("メソッド名=" + METHOD); } public void test2 () { final String METHOD="test2"; system.out.println("メソッド名=" + METHOD); } }

    • ベストアンサー
    • Java
  • StringTokenizerについて

    JAVAの勉強をしているのですが、StringTokenizerの役割がよく分かりません。検索サイトを使って色々調べてみたのですが、「トークンを区切る」だとかよく分からない言葉が出てきて全く理解できません。以下はあるデータから項目を抽出するプログラムらしいのですが、参考としてこの例でStringTokenizerがどのような役割を果たしているのか教えて下さい。複雑で説明しにくければStringTokenizerそのものの説明でも十分です。よろしくお願いします。 BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); String line=""; try { int i=0; while ((line = reader.readLine()) != null) { int fcount=1; StringTokenizer st = new StringTokenizer(line); while (st.hasMoreTokens()) { switch (fcount) { case 2: //項目2:被説明変数Y data[i][0]=Integer.parseInt(st.nextToken()); break; case 4: //項目4:説明変数X data[i][1]=Integer.parseInt(st.nextToken()); break; default: // その他の項目 String dummy=st.nextToken(); break; } fcount++; } i++; } NofData=i;

    • ベストアンサー
    • Java
  • メソッドのオーバーライド(java)

    class A3{ void hello(){ System.out.println("A3"); } void hello(int i){ System.out.println("A3"+i); } } class B3 extends A3{ void hello(){ System.out.println("B3"); } } class C3 extends B3{ void hello(String s){ System.out.println("C3"+s); } } class MethodOverriding3{ public static void main(String args[]){ A3 obj = new C3(); obj.hello(); } } 上のプログラムを実行すると"B3"と表示されまが、どうしてクラスBのメソッドが実行されるのでしょうか? クラスAのメソッドが無視される仕組みがわかりません。 また、クラスMethodOverriding3でobj.hello("abc")としてコンパイルすると mo.java:25: シンボルを見つけられません。 シンボル: メソッド hello(java.lang.String) 場所 : A3 の クラス obj.hello("abc");   ^ エラー 1 個 とエラーが出ます。 どうしてでしょうか? 誰か教えてください、お願いします。

    • ベストアンサー
    • Java
  • サーバー上(外部)のテキストの読み込み

    以下のようなtest.txtから二次元配列を読み込むプログラムを 今度はクライアントがapplet上からサーバーのappletプログラムがあるフォルダにあるtest.txtからデータを読み込むようにしたいのですが どうしてもセキュリティ上のエラーが出てしまいます。 画像などはgetImageでうまくいくのですが・・・ BufferedReader reader = null; String strArray[][] = new String[5][2]; String fileName = "test.txt"; int i = 0; int j = 0; try { reader = new BufferedReader ( new FileReader(fileName) ); String line; while ( (line = reader.readLine() ) != null ) { StringTokenizer st = new StringTokenizer (line ); while ( st.hasMoreTokens() ) { strArray[i][j] = st.nextToken(); j++; } j = 0;// 横のindexをリセット i++;// 縦のindexを次に } } catch ( Exception e ) { System.out.println ( e.toString() ); } ---------test.txt(例) 200 200 30 60 301 33 11 66 100 390 自分でも調べていくつもりですが期限があるためもしご存知の方がいましたら是非ご教授よろしくお願いいたします。

    • ベストアンサー
    • Java
  • ファイルから複数行のトークンを文字列検索。

    input.txt から "," で区切られた文字列をトークンで分け、 左がパターン、右が検索する文字列になります。 一行の場合は while((line = brInput.readLine())!= null ) { StringTokenizer st = new StringTokenizer(line, ","); if(st.hasMoreTokens()){ pattern = st.nextToken(); text = st.nextToken(); } これでマッチするだけなのですが、複数行の場合はどうでしょうか?

    • ベストアンサー
    • Java
  • 読み込んだ行からランダムに選ぶ

    外部テキストからBufferedReaderで読み込んだ行をStringTokenizerで * の前と後ろに分けて、 nichi ="" + st.nextToken(); ei ="" + st.nextToken(); というように取得しています。 これをsetTextメソッドで文字列として表示しているのですが、順に読み込んだ中からランダムに選ぶ場合はどうすれば良いでしょうか import java.applet.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*; public class examination extends Applet implements ActionListener{ Button Check, Next; TextField jap, eng, seigo; String wrs; String nichi, ei; public void init(){ setBackground(new Color(200, 200, 200)); add(new Label("[ japanese ]")); jap = new TextField("", 30); add(jap); add(new Label("[ english ]")); eng = new TextField("", 30); add(eng); Check = new Button("正誤判定"); Check.addActionListener(this); add(Check); seigo = new TextField("", 3); add(seigo); Next = new Button("次の問題へ進む"); Next.addActionListener(this); add(Next); } public void actionPerformed(ActionEvent e){ try{ if(e.getSource() == Next){ BufferedReader wordsfile = new BufferedReader(new FileReader("D:/list.txt")); while ((wrs=wordsfile.readLine())!= null){ StringTokenizer st = new StringTokenizer(wrs," * "); nichi ="" + st.nextToken(); ei ="" + st.nextToken(); jap.setText(nichi); ← } wordsfile.close(); }(以下省略) ←の部分ですが、このままだと最後に読み込んだ行のnichiが表示されますよね? これを読み込んだ中からランダムに一行選んで表示するにはどうすれば良いでしょうか。

    • ベストアンサー
    • Java
  • javaプログラミングの質問です。

    http://questionbox.jp.msn.com/qa1030602.html?StatusCheck=ON に載っている、プログラムを以下のようにQuestionというクラスで実行してみたところ、 import java.io.*; class Question{ public static void main(String Args[]){ BufferedReader reader = null; String strArray[][] = new String[4][4]; String fileName = "foo.txt"; int i = 0; int j = 0; try{ reader = new BufferedReader ( new FileReader(fileName) ); String line; while ( (line = reader.readLine() ) != null ){ StringTokenizer st = new StringTokenizer ( line ); while ( st.hasMoreTokens() ){ strArray[i][j] = st.nextToken(); System.out.print ( strArray[i][j] + " " ); j ++; } j = 0; i ++; System.out.println (""); } } catch ( Exception e ){ System.out.println ( e.toString() ); } } } Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。 StringTokenizer を型に解決できません。 StringTokenizer を型に解決できません。 というエラーが出ます。 このサイトの質問者はうまくいっているようなのですが、私のコンパイラがうまく動いていないのでしょうか? java version "1.6.0_07" を使っていて、Eclipseを用いてコンパイルをしたりしています。 どなたかご指摘をどうぞよろしくお願いいたします。

    • ベストアンサー
    • Java