我需要小写字母表中除引号之外的所有字符。
它应该支持单引号和双引号。
例如:
A - >一个
一个' B' - >一个' B'
A' A" A" A - >一个' A' A" A"
是否有任何库函数可以执行此操作,还是我必须自己解析字符串?如果是这样,推荐的方式是什么?也许使用一些花哨的正则表达式?
答案 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);