Java - 小写引号外的字符串

时间:2015-09-02 09:20:02

标签: java string

我需要小写字母表中除引号之外的所有字符。

它应该支持单引号和双引号。

例如:

A - >一个

一个' B' - >一个' B'

A' A" A" A - >一个' A' A" A"

是否有任何库函数可以执行此操作,还是我必须自己解析字符串?如果是这样,推荐的方式是什么?也许使用一些花哨的正则表达式?

1 个答案:

答案 0 :(得分:10)

AFAIK没有库函数,基于正则表达式的解决方案比一些老式的字符串操作更慢,而且(IMO)更难维护:

将字符串转换为char数组:

char[] chars = string.toCharArray();

迭代它,跟踪你是否在引号内:

boolean insideQuotes = false;
for (int i = 0; i < chars.length; i++) {
    if (chars[i] == '\'' || chars[i] == '"') {
        insideQuotes = !insideQuotes;
    } else if (!insideQuotes) {
        chars[i] = Character.toLowerCase(chars[i]);
    }
}

并转换回字符串:

String newString = new String(chars);