前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这有个算法题,要不要来解决一下?

这有个算法题,要不要来解决一下?

作者头像
小诸葛
发布2020-04-14 15:53:41
2400
发布2020-04-14 15:53:41
举报
文章被收录于专栏:方法论方法论

前言

这两天利用业余时间在开发一款小程序,其中遇到一个对一串字符串进行分割的问题,字符串如下:

代码语言:javascript
复制
String content = "(肉干、红枣、中药材)、纸板箱、报纸、废弃书本、快递纸袋、   打印纸、信封、广告单、纸塑铝复合包装(利乐、包)、";

此字符串已是最复杂的一种情况,不需要再考虑其他情况了。现在要对这串字符串以'、'进行分割,但是括号内的'、'不能作为分割依据,这串字符串的正确分割结果如下:

代码语言:javascript
复制
(肉干、红枣、中药材)
纸板箱
报纸
废弃书本
快递纸袋
打印纸
信封
广告单
纸塑铝复合包装(利乐、包)

怎么样?想到思路了吗?

需要稍微费点脑筋,不过挺有意思的,下面有我的实现代码,不过建议自己尝试一下,看看有没有更好的方法

我的代码实现:

代码语言:javascript
复制
String content = "(肉干、红枣、中药材)、纸板箱、报纸、废弃书本、快递纸袋、   打印纸、信封、广告单、纸塑铝复合包装(利乐、包)、";
int index = 0, length = content.replaceAll(" ","").length();
char left = '(', right = ')', split = '、', str;
boolean stop = true;
StringBuffer temp = new StringBuffer();
content = content.replaceAll(" ","");
while (index < length) {
    str = content.charAt(index);
    if (str == left || str == right || str == split) {
        if (str == left || str == right) {
            if (str == left) {
                temp.append(str);
                stop = false;
                index++;
            } else {
                temp.append(str);
                stop = true;
                index++;
            }
        } else {
            if (stop) {
                System.out.println(temp);
                temp = new StringBuffer();
                index++;
            } else {
                temp.append(str);
                index++;
            }
        }
    } else {
        temp.append(str);
        index++;
        if (index == length - 1) {
            char endChar = content.charAt(index);
            if (endChar != split) {
                temp.append(content.charAt(index));
            }
            System.out.println(temp);
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小诸葛的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档