アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のようにキーボードから入力していくプログラムを試行しているのですが、エラーが出てくるので行き詰まっています。
理想的にはキーボードに”あいう”エンター”えおか”エンターと打ち込んだら
str[0]=あいう
str[1]=えおか
と表示させていきたいのですが、よろしくお願いします。

import java.io.*;
import java.lang.*;
import java.net.*;
import java.awt.*;

class gugu2 {
public static void main(String[] args) throws IOException {

int i=0;
while(i<2){
System.out.println("キーワード入力");

BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
char str[] = input.toCharArray();
System.out.println("キーワードは" + str[]);
i=i+1;
}
for(i=0;i<2;i++){
System.out.println(str[]);
}
}
}

これがエラー表示です。
gugu2.java:17: '.class' がありません。
System.out.println("キーワードは" + str[]);
^
gugu2.java:21: '.class' がありません。
System.out.println(str[]);
^
エラー 2 個

A 回答 (1件)

まず、


str[]では、strクラスの配列を宣言します的な表記になってしまいます。
だからエラーは、「classがありません」となると思います。

char型の配列を表示したければ、
for文などでループさせる必要があります。
その添え字を使って一文字ずつ表示してあげる。
for( int j; j < str.length; j++ ){
  System.out.print(str[j]);
}

また、最後のfor文ですが、
strの変数がwhile文の中で宣言されていますので、
スコープを抜けてしまい、参照できないところになります。
よって表示できません。


ソースを読んだ感じでは、
str配列は、入力した文字列を1文字ずつの配列となっています。
例:あいうと入力
  str配列:「あ」「い」「う」



あくまでも推測ですが、
入力された文字列をある配列に格納して、
それを表示するとした場合
処理を見直した方がよろしいかと思います。

処理の順としては、
1.文字列クラスの配列を準備する(今回は要素数2)#String[] str = new String[2];
2.1つ目のキーワードを格納する #str[0] = 1つ目のキーワード
3.2つ目のキーワードを格納する #str[1] = 2つ目のキーワード
4.配列を表示する #for文かwhile文で表示
    • good
    • 1

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