質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

3221閲覧

【Java】配列の中身の文字を一つ一つ比較していきたい

ypk

総合スコア83

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/05/15 01:13

前提・実現したいこと

タイピングゲームを作成しています。
手本とタイピングした文字を一文字ずつ比較し、誤った文字数に応じてエラー数をカウントしていくシステムを作成中です。

一文字ずつ2つの配列の中身を比較する機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

Exception in thread "main" java.lang.Error: Unresolved compilation problems: inputArray cannot be resolved to a variable kttModelArray cannot be resolved to a variable inputArray cannot be resolved to a variable kttModelArray cannot be resolved to a variable at Main.main(Main.java:75)

該当のソースコード

import

1 2class Main { 3 public static void main(String[] args) { 4 5 String kttModel1 = "deed did feed freed red deer"; 6 String kttModel2 = "freed red deer did ride free"; 7 String kttModelArray1[] = kttModel1.split(""); 8 String kttModelArray2[] = kttModel2.split(""); 9 10 for (String a : kttModelArray1) { 11 System.out.print(a); 12 } 13 14 System.out.println(); 15 16 for (String b : kttModelArray2) { 17 System.out.print(b); 18 } 19 20 System.out.println(); 21 22 for (int j = 0; j < 2; j++) { 23 24 if (j == 0) { 25 System.out.println(kttModel1); 26 } else { 27 System.out.println(kttModel2); 28 } 29 30 } 31 32 System.out.println(java.util.Arrays.equals(kttModelArray1, kttModelArray2)); 33 34 System.out.println(); 35 System.out.println("コレクト・トレーニングを始めましょう。"); 36 System.out.println(); 37 38 Scanner scan = new Scanner(System.in); 39 40 final int COUNT_LIMIT = 3; 41 42 for (int i = 0; i < COUNT_LIMIT; i++) { 43 44 for (int j = 0; j < 2; j++) { 45 46 if (j == 0) { 47 48 // 正確さトレーニングの見本を表示 49 System.out.println(kttModel1); 50 51 // 文字の入力 52 String input = scan.nextLine(); 53 54 String kttModelArray[] = kttModel1.split("", -1); 55 String inputArray[] = input.split("", -1); 56 57 } else { 58 59 // 正確さトレーニングの見本を表示 60 System.out.println(kttModel2); 61 62 // 文字の入力 63 String input = scan.nextLine(); 64 65 String kttModelArray[] = kttModel1.split("", -1); 66 String inputArray[] = input.split("", -1); 67 68 } 69 70 // エラーの回数を初期化 71 int errorCount = 0; 72 73 // 1文字ずつ比較 74 for (int k = 0; k < inputArray.length; k++) { 75 76 // KTT文字列の文字数を超えてもエラー扱いにしない 77 if (k == kttModelArray.length - 1) { 78 break; 79 } 80 81 // 等しくなければエラー回数を増やす 82 if (!inputArray[k].equals(kttModelArray[k])) { 83 errorCount++; 84 } 85 86 } 87 88 } 89 } 90 91 } 92} 93

試したこと

for (int k = 0; k < inputArray.length; k++) { // KTT文字列の文字数を超えてもエラー扱いにしない if (k == kttModelArray.length - 1) { break; } // 等しくなければエラー回数を増やす if (!inputArray[k].equals(kttModelArray[k])) { errorCount++; } }

を記述するまでは順調にコンソールができていたのですが、配列を一文字し、手本

String kttModel1 = "deed did feed freed red deer"; String kttModel2 = "freed red deer did ride free";)

と入力した文字を一文字ずつ比較するために上記(equalsを利用したコード)の記述を加えたところ

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
inputArray cannot be resolved to a variable
kttModelArray cannot be resolved to a variable
inputArray cannot be resolved to a variable
kttModelArray cannot be resolved to a variable

at Main.main(Main.java:75)

というエラーが発生してしまいました。

お手数をおかけしますが、どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ぱっと見た感じ、変数のスコープの問題だと思います。
「Java 変数 スコープ」でググって勉強してみてください。

投稿2020/05/15 01:18

gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ypk

2020/05/15 01:30

スコープの範囲を見直してみたところ、無事に解決されました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問