java小编程----括号是否匹配
生活随笔
收集整理的這篇文章主要介紹了
java小编程----括号是否匹配
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
錯誤示例::: 當
String s = "...(...[....]....{...}...)...(.[..)..";? ? ?應輸出3
package com.henu.jihe; /** String s = "...(...[....]....{...}...)...(...).."; 判斷括號是否匹配 * 思路:遍歷整個String;然后從i=0截取strFirst=s.subString(i,i+1),*然后在截取strEnd = s.substring(i+1);先判斷strFirst是否為左括號,若是則判斷在*strEnd中是否包含右括號,若包含則count++;*/ public class Demo06 {public static void main(String[] args) {String s = "...(...[....]....{...}...)...(...)..";int count = 0;//匹配括號的數目for (int i = 0; i < s.length(); i++) {String strFirst = s.substring(i,i+1);String strEnd = s.substring(i+1);if (strFirst.equals("(") && strEnd.contains(")")) {count++;}else if (strFirst.equals("[") && strEnd.contains("]")) {count++;}else if (strFirst.equals("{") && strEnd.contains("}")) {count++;}else {continue;}}System.out.println(count);} }再一個錯誤示例
package com.henu.jihe;import java.util.Arrays; import java.util.Stack; import java.util.Vector;/** String s = "...(...[....]....{...}...)...(...).."; 判斷括號是否匹配 * 思路:遍歷整個String;然后從i=0截取strFirst=s.subString(i,i+1),*然后在截取strEnd = s.substring(i+1);先判斷strFirst是否為左括號,若是則判斷在*strEnd中是否包含右括號,若包含則count++;*/ public class Demo06_02 {public static void main(String[] args) {String s = "...(...[....]....{...}...)...(...)..";String[] str = s.split("\\.+");System.out.println(Arrays.toString(str));Stack<String> stack = new Stack<>();int count = 0;for (int i = 0; i < str.length; i++) {if ("(".equals(str[i])) {stack.push(str[i]);if (")".equals(str[i+1])) {stack.pop();count++;}}else if ("[".equals(str[i])) {stack.push(str[i]);if ("]".equals(str[i+1])) {stack.pop();count++;}}else if ("{".equals(str[i])) {stack.push(str[i]);if ("}".equals(str[i+1])) {stack.pop();count++;}}else {continue;}}System.out.println(count);} }?再來個錯誤示例:::
package com.henu.jihe;import java.util.Arrays; import java.util.Stack;public class Demo06_03 {public static void main(String[] args) {String s = "...(...[....]....{...}...)...(...)..";String[] str = s.split("\\.+");System.out.println(Arrays.toString(str));Stack<String> stack = new Stack<>();int count = 0;String string = "";for (int i = 0; i+1 < str.length; i++) {if ("(".equals(str[i]) || "[".equals(str[i]) || "{".equals(str[i])) {stack.push(str[i]);string = stack.peek();} // if (stack.size() != 0) { // string = stack.peek();System.out.println(string); // }if ("(".equals(string) && ")".equals(str[i+1])) {stack.pop();count++;}else if ("[".equals(string) && "]".equals(str[i+1])) {stack.pop();count++;}else if ("{".equals(string) && "}".equals(str[i+1])) {stack.pop();count++;}else {continue;}}System.out.println(count);}}?重頭戲:正確的::::
package com.henu.jihe;import java.util.Arrays; import java.util.Stack;public class Demo06_03 {public static void main(String[] args) {String s = "...(...[....]....{...}...)...(...)..";String[] str = s.split("\\.+");System.out.println(Arrays.toString(str));Stack<String> stack = new Stack<>();int count = 0;String string = "";for (int i = 0; i+1 < str.length; i++) {if ("(".equals(str[i]) || "[".equals(str[i]) || "{".equals(str[i])) {stack.push(str[i]);string = stack.peek();} // if (stack.size() != 0) { // string = stack.peek();System.out.println(string); // }if ("(".equals(string) && ")".equals(str[i+1])) {stack.pop();count++;}else if ("[".equals(string) && "]".equals(str[i+1])) {stack.pop();count++;}else if ("{".equals(string) && "}".equals(str[i+1])) {stack.pop();count++;}else {continue;}}System.out.println(count);}}?
?
總結
以上是生活随笔為你收集整理的java小编程----括号是否匹配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java基础---instanceof关
- 下一篇: java基础---关于比较器Compar