美文网首页工具类
如何处理java中对{},[],() 的解析,不仅可以用正则,也

如何处理java中对{},[],() 的解析,不仅可以用正则,也

作者: 爱吃苹果的西瓜 | 来源:发表于2019-07-31 14:10 被阅读0次
  • 首先把字符串中的{,[,(压入栈,循环字符串,把},],)出栈。
  • 再用一个map存放{},[],() 。判断最后一个出栈的元素是否和第一个入栈的元素是否符合map。
  • 如果不符合,则出入的参数有误
  • 再把通过split的字符串进行拼接成自己想要的样子,就可以啦!
public static String[] getSplitString(String param) {

            String[] rawParams = param.split(",");
            int len = rawParams.length;
            ArrayStack stack = new ArrayStack(param.length());
            Map<String, String> map = new HashMap<>();
            map.put("{", "}");
            map.put("[", "]");
            map.put("(", ")");
            String[] gParams = new String[len];
            int index = 0;
            StringBuffer buffer = new StringBuffer();
            for (int i = 0; i < len; i++) {
                char[] c = rawParams[i].toCharArray();
                int l = c.length;
                for (int j = 0; j < l; j++) {
                    if (c[j] == 91 || c[j] == 123 || c[j] == 40) {
                        stack.push(c[j]);
                    }
                    if (c[j] == 93 || c[j] == 125 || c[j] == 41) {
                        String temp = String.valueOf(stack.pop());
                        if (c[j] != map.get(temp).toCharArray()[0]) {
                            return null;
                        }
                    }

                }

                if (stack.size() > 0) {
                    buffer.append(rawParams[i]);
                    buffer.append(",");
                } else {
                    gParams[index] = buffer.append(rawParams[i]).toString();
                    index++;
                    buffer = new StringBuffer();
                }

            }

            int glen = gParams.length;
            for (int k = 0; k < glen ; k++) {
                if (null == gParams[k]) {
                    continue;
                }
                char[] chars = gParams[k].toCharArray();
                int l = chars.length;
                if (chars[0] == 34 || chars[0] == 39) {
                    gParams[k] = String.valueOf(chars, 1, l - 2);
                }
            }
            return gParams;
        }

相关文章

  • 如何处理java中对{},[],() 的解析,不仅可以用正则,也

    首先把字符串中的{,[,(压入栈,循环字符串,把},],)出栈。 再用一个map存放{},[],() 。判断最后一...

  • Java 正则表达式

    正则表达式定义了字符串的模式,可以用来搜索、编辑或处理文本。正则表达式可以用来搜索、编辑或处理文本。Java 正则...

  • 日常记忆之Java正则表达式

    Java正则表达式 正则表达式定义了字符串的模式正则表达式可以用来搜索、编辑或处理文本。正则表达式不仅局限于某一种...

  • [JAVA] 读取Java源文件中的注释

    因“注释信息”只存在.java文件中,而不在.class文件中,故只有通过解析*.java文件来获取:1.通过正则...

  • 11《Python 原生爬虫教程》使用正则表达式进行页面提取

    上节课我们学习了如何使用 BeautifulSoup 来解析页面,这节课我们来学习下如何使用正则来解析页面。 正则...

  • Java 正则表达式

    正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每...

  • Java 正则表达式

    正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每...

  • Java教程 第18章 正则表达式

    正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每...

  • Exception

    Java 中 9 个处理 Exception 的最佳实践 Java 中的异常和处理详解 如何优雅的设计 Java ...

  • 爬虫解析----BS4解析

    爬虫解析方法分为:正则解析、xpath解析、bs4解析。 正则表达式直接对html字符串进行解析(最快)。xpat...

网友评论

    本文标题:如何处理java中对{},[],() 的解析,不仅可以用正则,也

    本文链接:https://www.haomeiwen.com/subject/oyozrctx.html