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