我有一个字符串s,我需要迭代并将所有小写字母转换为大写字母,大写字母转换为" _"
String consonant = "bcdfghjklmnpqrstvwxyz";
String upperconsonant = "BCDFGHJKLMNPQRSTVWXYZ";
for (int i = 0; i < s.length(); i++) {
String consonantletter = s.substring(i, i + 1);
if (upperconsonant.toUpperCase().contains(consonantletter) == true) {
s = s.replace(s.charAt(i), '_');
} else if (consonant.contains(consonantletter) == true) {
s=s.replace(s.charAt(i),?????);
}
}
return s;
我不确定如何更换问号中的字符,如果它是小写字母,则使用其自身的大写版本。我尝试将字符转换为大写,但是收到错误。
答案 0 :(得分:2)
逐个解析String的char数组
final String lConsonants = "bcdfghjklmnpqrstvwxyz";
final String uConsonants = lConsonants.toUpperCase();
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
int j = lConsonants.indexOf(chars[i]);
if (j > -1)
chars[i] = uConsonants.charAt(j);
else if (uConsonants.indexOf(chars[i]) > -1)
chars[i] = '_';
}
s = new String(chars);
答案 1 :(得分:1)
使用以下代码段可以轻松完成:
public static void main (String[] args)
{
String str = "asdfQWERTYzxcv";
System.out.println(str.replaceAll("[A-Z]","_").toUpperCase());
}
输出:
ASDF______ZXCV