错误示例::: 当

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小编程----括号是否匹配相关推荐

  1. java小编程----给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。

    package com.henu;import java.util.Arrays;/*** @author limengdong* @date 2019年7月19日* @classroom 208bi ...

  2. java小编程----电话号码组合

    仅以此文深刻理解递归!!! package com.henu.lmd;import java.util.ArrayList; import java.util.HashMap; import java ...

  3. java小编程----四数之和

    给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...

  4. java小编程----最接近的三数之和

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...

  5. java小编程----三数之和

    package com.henu.lmd;import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; ...

  6. java小编程----盛最多水的容器

    package com.henu.lmd;import java.util.ArrayList; import java.util.Collections; import java.util.List ...

  7. java小编程-----读取文本文件csb.txt,统计字符个数,并把结果保存到result.txt

    文件路径要写对....!!!!! !!!!!!! 改变.txt文档的字符集,即打开.txt文档,然后另存为,然后下面你会看到的!!!!!!!!!!!!!!!!!!!!!!!!!! package Te ...

  8. java小编程----反转字符串中的每一个单词

    package com.henu.four;public class Test07_3 {// String str= "abc god 中国 java"(较难) 反转每个单词pu ...

  9. java小编程----在排序数组中查找元素的第一个和最后一个位置

    package com.ujiuye.three;import java.util.ArrayList; import java.util.List; /*** @author limengdong* ...

最新文章

  1. Centos配置yum为阿里源
  2. 简单的MSSQL恢复删除数据的方法
  3. 程序员最后可能的出路
  4. C 语言指针 5 分钟教程
  5. 一位面试者提到直接调用vuex中mutations方法
  6. Java 并发总结——线程池
  7. 面试问题汇总 精选 分析 解答 职业规划 part 2
  8. 【DevCloud · 敏捷智库】两种你必须了解的常见敏捷估算方法
  9. JavaScript 评论添加练习
  10. PCL中将回调函数封装到类中
  11. hwclock设置日期_hwclock显示系统硬件时钟的日期和时间
  12. easymule学习----校验dll信息
  13. java 200以内的素数_Java——200以内的质数
  14. delphi反编译ded加密解密之反汇编工具
  15. TJ Wi-Fi不能使用的解决的办法
  16. 腾讯云服务器如何挂载云硬盘(Linux版本)?
  17. VB6.0中关于setfocus用法
  18. 武汉大学计算机技术上机难度,武汉大学计算机技术(专业学位)考研难不难和研究生专业好不好...
  19. Linux /根目录下子目录的存放内容
  20. Discuz!更换论坛系统默认头像方法

热门文章

  1. centos7修改ip地址命令_CentOS7 安装 httpd 服务
  2. boolean类型_JS核心理论之《数据类型、类型转换、深浅拷贝与参数传递》
  3. pandas 把某一列中字符串变数值_Python学习教程:Python数据分析实战基础 | 初识Pandas...
  4. SVD原理及其应用导论
  5. Maskros的蓝桥刷题之路(1-13)
  6. Lua 调试(Debug)
  7. IOCP不可忽视的细节
  8. Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
  9. 秒杀多线程第三篇 原子操作 Interlocked系列函数
  10. ADO学习(四)ADO扩展IADORecordBinding