前提・実現したいこと
12.20追記
*大かっこではありません。失礼いたしました。
*いただいた質問について、下記に順次回答をしております。みなさまご対応いただき、ありがとうございます。
ご覧いただきありがとうございます。Java初心者です。
タイトルの通り、「String内のかっこ”()”の中の文字列が、数式として書式化されているかどうかを
真偽で判定するプログラム」を完成させたいです。
質問としては、以下の3点となっております。
1「あらかじめプログラム内にデータを保存しておく方法」はなにか?
2「入力されたものにそのデータ内の数字・文字が含まれているかどうかを真偽で判定させる」にはどうすればよいか?
3”(), {}, []”の3つの”かっこ”のそれぞれの順番を、正しいものの場合のみ表示するにはどうすればよいか?
作成上での私の考えとしては、「”あらかじめプログラム内にデータを保存しておき、入力されたものにそのデータ内の数字・文字が含まれているかどうかを真偽で判定させる”とよいのでは?」と考え、作成しました。
ちなみに、入力は文字列で行い、出力結果はTrue・Falseとさせるものです。
(例)
入力 → 出力結果
"(a+b)^2" → true
"(()))(" → false
"[(])" → true
ご回答をよろしくお願いいたします。
発生している問題・エラーメッセージ
(いずれも10行目にエラー表示となっています)
java: '.class'がありません java: 文ではありません java: ';'がありません
該当のソースコード
Java
import java.util.Scanner; public class Exercise_02 { public boolean matchBrackets(String str) { String s = " "; for (char c: str.toCharArray()) if ( s = int[], char[]) { } return true; } static public void main(String args[]) { Scanner scanner = new Scanner(System.in); String s = scanner.next(); int[] numbers = new int[10]; numbers[0] = 0; numbers[1] = 1; numbers[2] = 2; numbers[3] = 3; numbers[4] = 4; numbers[5] = 5; numbers[6] = 6; numbers[7] = 7; numbers[8] = 8; numbers[9] = 9; char[] characters = new char[13]; characters[0] = '+' ; characters[1] = '-' ; characters[2] = '*' ; characters[3] = '/' ; characters[4] = '%' ; characters[5] = '=' ; characters[6] = '<' ; characters[7] = '>' ; characters[8] = '(' ; characters[9] = ')' ; characters[10] = '{' ; characters[11] = '}' ; characters[12] = '[' ; characters[13] = ']' ; System.out.println(matchBrackets(s)); } }
試したこと
・1の質問について、int[] numbers = new int[10];というように、配列で保存させておき、そこから処理をさせようとしました。
・2の質問については、for文を利用し、上記のintやcharの保存を判定させようとしましたが、ここでとくにつまっています。
・3の質問については、if文とASCⅡを利用して、先に"(, {, ["のASCIIに該当した際のみに処理を実行させようとしました。
補足情報(FW/ツールのバージョンなど)
環境はIntelliJ IDEAでおこなっています。
まだ回答がついていません
会員登録して回答してみよう