首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java字符串格式解决方案

Java字符串格式解决方案
EN

Stack Overflow用户
提问于 2012-11-28 12:33:58
回答 1查看 125关注 0票数 0

我有一个公司的字符串描述,它是由不同的用户编写的(手工打印)。下面是一个例子(重点放在点、空格、首字母等):

XXXX是一家全球性的管理咨询、技术服务和外包公司,在120多个国家和地区有257000人为客户服务。XXXX公司结合无与伦比的经验、所有行业和业务部门的综合能力,以及对世界上最成功的公司的广泛研究,与客户合作,帮助他们成为高绩效的企业和政府。截至2012年7月31日的财政年度,公司净收入279亿美元。

现在,我想要的是将字符串格式化为更好的版本,如下所示:

XXXX是一家全球性的管理咨询、技术服务和外包公司,拥有257,000人,服务于120多个国家的客户。XXXX公司结合了无与伦比的经验、所有行业和业务部门的综合能力,以及对世界上最成功的公司的广泛研究,与客户合作,帮助他们成为高绩效的企业和政府。在截至2012年8月31日的会计年度,该公司实现了279亿美元的净收入。

我的问题是:是否有任何已定义方法的库可以进行所有拼写更正、不必要的空格删除等。?

到目前为止,如果是“/ ",我会将”、“替换为”,“和toUpperCase()。在前面等。

代码语言:javascript
复制
desc = desc.replace("  ", " ");
desc = desc.replace("..", ".");
desc = desc.replace(" .", ".");
desc = desc.replace(" ,", ", ");
desc = desc.replace(".,", ".");
desc = desc.replace(",.", ".");
desc = desc.replace(", .", ".");
desc = desc.replace("*", "");

我相信有一个更干净和更好的版本来做这件事。也许用正则表达式??

如有任何解决办法,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2012-11-28 12:37:03

如果我想解决你的问题,我可能会一次读1 char的文本,并在你走的时候格式化它。例如,在psuedocode中..。

代码语言:javascript
复制
while (has more chars){
    char letter = readChar();
    if (letter == ','){
        // checking for the ',.' combination
        letter = readChar(); 
        if (readChar == '.'){
            // write out a '.' only
            out.print('.');
        }
        else {
            // it wasn't the ',.' combination, so you need to output both characters, whatever they are
            out.print(',');
            out.print(letter);
        }
    }
    else if (another letter you want to filter){
        // etc.
    }
    else {
        // doesn't match any of the filters, so just output the letter
        out.print(letter);
    }
}

基本上,如果您一次读取文本1 char,您可以检测到所选格式问题中的任何一个,并立即纠正它们。这提供了性能改进,因为您只读取文本字符串一次(而不是8次,就像您目前正在做的那样),并且允许您添加任意多个不同/复杂的格式更改。但是,缺点是,您需要自己编写逻辑,而不是依赖内置的函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13605180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档