• 締切済み

【JAVA <identifier>がありませんについて教えて下さい】

最近、会員登録させて頂いた佐藤と申します。 宜しくお願い致します。 最近、JAVAの勉強を行っており、簡単なプログラムを作ってみました。 コンパイルを行ったところ、以下のエラーメッセージが出力されます。 1.<identifier>がありません 2.')'がありません 2につきましては、自分でも調べてみましたが、'('と')'の数に間違いは無いと思います。 ソースは以下の通りです。 import java.io.*; public class testpgm {public static void main(String args[]) throws IOException {System.out.print("input data ==> "); //キーボードからの入力 BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //入力データバッファの定義&代入 String data = buf.readLine(); char[] src = data.toCharArray(80); byte[] bytes= data.getBytes(); int i = 0; //int len = bytes.length; //文字数が81byte以上入力された場合はエラーメッセージ出力 if(80<bytes.length){System.out.print("入力文字数がオーバーしています");} else{ //文字種類と文字別の文字数を表示する for(int i = 0; i<src.length; i++){ if(src.char(i) == '\n'){ count++; } } System.out.print("output data ==> "); System.out.print(data); return; } } } エラーメッセージの対象となるのは エラー1 if(src.char(i) == '\n'){ ^ エラー2 } ^ (一番下の行から7行目) 初歩的な質問だと存じますが、理由をご存知の方は宜しくお願い致します。

  • Java
  • 回答数1
  • ありがとう数3

みんなの回答

noname#33813
noname#33813
回答No.1

>char[] src = data.toCharArray(80); >if(src.char(i) == '\n'){ charは基本データ型です。 基本データ型はメソッドを持ちません。(オブジェクトではないので) よってエラーになっているのでは? 構文的には if(src[i] == '\n'){ とするのが正しいです。 ちょっと動作確認が取れないので、参考程度で。

satohdesu
質問者

お礼

正常にコンパイルアップ出来ました! ありがとうございました。 とても感謝しております。

関連するQ&A

  • Java問題 できればソースコードを教えて下さい。

    import java.io.*; public class K3 { /** * @param args */ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); double[] data = new double[5]; System.out.println("5個の性のデータを入力して下さい"); int i = 0; do{ System.out.print("data{" + i + "}="); String str = br.readLine(); data[i] = Double.parseDouble(str); i++; }while(i<data.length && data[i-1] >=0); System.out.println("入力された結果を表示します"); i=0; while(i<data.length && data[i] >=0); System.out.println("data[" + i + "]: + data[i]"); i++; } } double型のデータを5個保存できる配列を準備し,do-while文を用いてデータの入力を行い,while文を用いて出力を行うプログラムを作成しなさい. ただし,入力するデータは正の数のみとし,入力が負の数だった場合は,データが5個より少なくても,入力・出力を停止することとしなさい.(whileの条件で判定し,if文等は設置しなくてよい.) そして,最後に,全データの合計値と平均値を出力しなさい お願いします

  • プログラミングお願いします(JAVA)

    問題   キーボードから10回連続して入力し、そのデータを入力された順番とは逆順に一行で出力するプログラムを作成する 実行結果 ↓ 数値1>10 数値2>11 数値3>13   途中略 数値9>25 数値10>27 入力:10 11 13 15 17 19 21 23 25 27 逆順出力:27 25 23 21 19 17 15 13 11 10 ____________________________________________________________________________________________________ 自分がやったプログラミングですが、実行結果がうまくいきません。エラーは発生しないですけど、最後の入力と逆出力の出し方が実行結果のようにうまく表示させることができません。どうしたらいいでしょうか?? class Sample4 { public static void main(String[] args) throws IOException { System.out.println(""); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] test = new int[10]; for (int i = 0; i < 10; i++){ System.out.print("数値"+i+">"); String str = br.readLine(); int num =Integer.parseInt(str); test[i]=num; } for (int i = 0; i < 10/ 2; i++) { int t = test[i]; test[i] = test[10 - i - 1]; test[10 - i - 1] = t; } System.out.println("要素の並びを逆転しました."); for (int i = 0; i < 10; i++){ System.out.print("入力:"+test[i]); System.out.print("逆順出力:"+test[i]); } } }

  • Java問題 できればソースコードを教えて下さい。

    import java.io.*; public class K4 { /** * @param args */ public static void main(String[] args) throws IOException{ // TODO 自動生成されたメソッド・スタブ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); double[] data = new double[10]; int n = data.length; System.out.println("10個の正の値を入力して下さい"); for(int i = 0;i <n; i++){ System.out.print("data[" + i + "]="); String str= br.readLine(); data[i] = Integer.parseInt(str); if(data[i] <0){ n=i; break; } } System.out.print("入力されたデータを表示します."); for(int i = 0;i <n; i++){ System.out.print("data[" + i + "]=" + data[i]); } } } double型のデータを10個保存できる配列を準備し,for文を用いてデータの入力と出力を行うプログラムを作成しなさい.(入力ループが終了した後に出力ループを設置する.) ただし,入力するデータは正の数のみとし,入力が負の数だった場合は,データが10個より少なくても,入力・出力を停止する事とする.(if文で入力値の判定を行い,入力データ個数も別途変数に保存するなどしておくこと.データ出力のループでは,そのデータの個数を保存した変数を利用して繰り返しの回数を制限する.) 最後に,全データの合計値と平均値も出力しなさい

  • Java言語のプログラムをC言語にする場合

    次の2つのJava言語のプログラムをC言語にしたいのですが、C言語でプログラムを書いたことがありません。C言語にする場合はどう書けばいいのでしょうか? import java.io.*; public class Sort { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("整数値を入力してください"); String line = reader.readLine(); int a = Integer.parseInt(line); String line2 = reader.readLine(); int b = Integer.parseInt(line2); String line3 = reader.readLine(); int c = Integer.parseInt(line3); String line4 = reader.readLine(); int d = Integer.parseInt(line4); int[] data = {a, b, c, d}; for (int i = 0; i< data.length - 1 ; i++) { for (int j = i + 1; j< data.length; j++) { if(data[i] > data[j]) { int e = data[i]; data[i] = data[j]; data[j] = e; } } } System.out.println("昇順に並べ替えると、"); for (int i = 0; i< data.length; i++) { System.out.print(data[i] + " "); } System.out.println("です。"); } catch (IOException e){ System.out.println(e); } catch (NumberFormatException e) { System.out.println("数式の形式が正しくありません。"); } } } import java.io.*; public class Yakusu { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("2つの整数値を入力してください"); System.out.print("整数A : "); String line = reader.readLine(); int a = Integer.parseInt(line); System.out.print("整数B : "); String line2 = reader.readLine(); int b = Integer.parseInt(line2); if(a%b == 0){ System.out.println("BはAの約数です"); } else { System.out.println("BはAの約数ではありません"); } } catch (IOException e){ System.out.println(e); } catch (NumberFormatException e) { System.out.println("数式の形式が正しくありません。"); } } }

  • 文字化けについて

    以下のコードでコンパイルすると 文字化けします。 どうすれば文字化けしなくできますか? new InputStreamReader(System.in)のところもEUC_JPにしたりしたのですが文字化けしてしまいました(汗) import java.io.*; public class test { public static void main(String agrs[]) { try { BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); String boyname,girlname; int goukei=0; System.out.println("男性の名前を入力してください"); boyname=in.readLine(); System.out.println(boyname); char boynameChar[]=boyname.toCharArray(); for(int i=0;i<boyname.length();i++) { goukei+=(int)boynameChar[i]; } System.out.println("女性の名前を入力してください"); girlname=in.readLine(); char girlnameChar[]=girlname.toCharArray(); for(int i=0;i<girlname.length();i++) { goukei+=girlnameChar[i]; } System.out.print(boyname+""と+girlname+"の相性は"+goukei%100+"%"); in.close(); } catch(IOException e) { } } }

  • 入力データ数を入力して、その数だけ整数値を入力し配列を格納した後、入力

    入力データ数を入力して、その数だけ整数値を入力し配列を格納した後、入力した値を横に表示するプログラムを下記に作成したのですが、思う通りに表示されません。初期化しても最後の値になるし、なぜでしょうか? import java.io.*; class Hairetu1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("データはいくつですか?"); String str = br.readLine(); int num = Integer.parseInt(str); int a[]=new int[num]; int i,tmp=0; for(i=0; i<a.length; i++){ System.out.print((i+1)+"番目は?"); str = br.readLine(); tmp = Integer.parseInt(str); a[i] = tmp; } for(i=0; i<a.length; i++){ System.out.print("入力した値は"+tmp+"\t"); }

    • ベストアンサー
    • Java
  • 文字化けについて

    以下のコードでコンパイルして日本語入力すると 文字化けします。 どうすれば文字化けしなくできますか? new InputStreamReader(System.in)のところもEUC_JPにしたりしたのですが文字化けしてしまいました(汗) import java.io.*; public class test { public static void main(String agrs[]) { try { BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); String boyname,girlname; int goukei=0; System.out.println("男性の名前を入力してください"); boyname=in.readLine(); System.out.println(boyname); char boynameChar[]=boyname.toCharArray(); for(int i=0;i<boyname.length();i++) { goukei+=(int)boynameChar[i]; } System.out.println("女性の名前を入力してください"); girlname=in.readLine(); char girlnameChar[]=girlname.toCharArray(); for(int i=0;i<girlname.length();i++) { goukei+=girlnameChar[i]; } System.out.print(boyname+""と+girlname+"の相性は"+goukei%100+"%"); in.close(); } catch(IOException e) { } } }

    • ベストアンサー
    • Java
  • (java)HTMLをParseさせず・・・

    初めてお世話になります。 現在、HTMLをParse(解析)せずに、 BufferedReder→indexOf(抜き取りたい「文字」の出現場所を検索)→ substring(indexOfの内容を元に「文字」を抜き取る) という内容のシステムをjavaで組みたい!と試行錯誤しております;; 目的はParseと上記内容での実行時間がどれくらい違うのかという興味で作成を開始しました。 今回、BufferedReader→indeOfまでは考え通り上手くいったのですが、 substiringで1000文字以上あるHTMLソースから指定した箇所(indexOf)で抜き取る作業ができないので教えてください。(正確には○○.substring(int,int)の○○部分をどこにしていしたらいいのかわかりません。) 是非ご教授の程よろしくお願いします。 実際のコードは下記の通りです。 import java.io.*; import java.net.URL; public class Test { public static void main (String []args){ add(); } public static void add(){ try { //URLを指定して読み込み URL u = new URL("http://'"URLを入力"'/"); InputStream is = u.openStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is,"EUC_JP")); String line ; int linenum=1; int length=1; //1行ずつ読み込み while ((line = br.readLine()) != null) { String A = "166"; String B = "102"; int i; int j; //文字列検索(HTMLソースの0~何文字目に出現!?) i = line.indexOf(A); j = line.indexOf(B); if(i>=0){ System.out.println((i+length) + "文字目"); } if(j>=0){ System.out.println((j+length) + "文字目"); } linenum++; length += line.length() + 1; String str1 = line; String str2 = str1.substring(i+length,j+length);                             //当然「line」なんかにsubstringかけても駄目でしたw System.out.println(str2) ; } is.close(); br.close(); } catch (FileNotFoundException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } } 説明が意味不明な点もあるかと思いますので、 質問もお待ちしております。 是非、お力をお貸ししてください。 よろしくお願いいたします。

  • 入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小

    入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小値のプログラムを下記に作成してみたら最小値が0になりました。そして、もう一つ繰り返し文を作ってみたら、最大値・最小値がうまく表示されました。この違いはどうしてですか?教えてください。 import java.io.*; class Hairetu1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("データはいくつですか?"); String str = br.readLine(); int num = Integer.parseInt(str); int a[]=new int[num]; int i; int max=0; int min=a[0]; for(i=0; i<a.length; i++){ System.out.print((i+1)+"番目は?"); str = br.readLine(); int tmp = Integer.parseInt(str); a[i] = tmp; if(max<tmp){ max=tmp; } if(min>tmp){ min=tmp; } } System.out.println("入力した値は"+test.length); System.out.println("最大は"+max); System.out.println("最小は"+min); } }

    • ベストアンサー
    • Java
  • [至急!]Javaのプログラミング

    野球のBSOカウンタを作ろうとしているのですが、エラーが出ないもののうまく動きません。動作としてはsと入力したらSのカウンタに「〇」を表示、といったことをO(アウト)カウンタが3つになるまで行うプログラムなのですが、入力と出力の両方をうまくループすることが出来ません。分かる方がいたら教えてください。私が作ったものは下のものです。これを改良して作っていただけると助かります。 import java.io.*; public class test1 { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //String str=br.readLine(); //char hantei=str.charAt(0); int sc=0,bc=0,oc=0; while(oc<3){ String str=br.readLine(); char hantei=str.charAt(0); if(hantei=='s') { sc=sc+1; if(sc==3) oc=oc+1; sc=0; bc=0; } else if(hantei=='b') { bc=bc+1; if(bc==4) sc=0; bc=0; } else if(hantei=='o') { oc=oc+1; sc=0; bc=0; } else { System.out.println("入力が違います。"); } } System.out.print("B "); for(int i=0;i<=bc;i++){ System.out.print("〇"); } System.out.println(""); System.out.print("S "); for(int i=0;i<=sc;i++){ System.out.print("〇"); } System.out.println(""); System.out.print("O "); for(int i=0;i<=oc;i++){ System.out.print("〇"); } System.out.println(""); } } 出力例 s(入力) B S 〇 O s(入力) B S 〇〇 O s(入力) B S O 〇 これをアウトカウントが3つになるまで行うプログラムです。

    • ベストアンサー
    • Java

専門家に質問してみよう