我想取一个字符串的大写并将其应用于另一个字符串。
例如:以Apple和orange为例,将其转换为Orange。
这是我实现的解决方案。有没有更有效的方法来做到这一点?
public static String applyCapitalization(String to, String from) {
int[] capArray = toCapitalizationArray(to);
char[] charCap = from.toCharArray();
for (int i = 0; i < capArray.length; i++) {
if (capArray[i] == 1) {
charCap[i] = Character.toUpperCase(charCap[i]);
} else {
charCap[i] = Character.toLowerCase(charCap[i]);
}
}
return new String(charCap);
}
private static int[] toCapitalizationArray(String to) {
int[] arr = new int[to.length()];
for (int i = 0; i < to.length(); i++) {
char c = to.toCharArray()[i];
if (Character.isUpperCase(c)) {
arr[i] = 1;
} else {
arr[i] = 0;
}
}
return arr;
}发布于 2018-07-21 08:18:38
我们可以用一次遍历而不是两次遍历来完成这个任务。
for (int i = 0; i < min(apple.length(),orange.length()); i++) {
if (Character.isUpperCase(apple.toCharArray()[i]) &&
Character.isLowercase(oranger.toCharArray()[i])){
orange[i] = Character.toUppercase(oranger.toCharArray()[i]);
}elseif(Character.isLowerCase(apple.toCharArray()[i]) &&
Character.isUppercase(oranger.toCharArray()[i])){
orange[i] = Character.toLowercase(oranger.toCharArray()[i]);
}
}发布于 2018-07-21 12:24:23
例如:拿苹果和橘子,把它变成橙色。
但是,如果要将任何字符串大写,则只需使用字符串类的替换函数即可。
public static String capitalize(String word){
String capitalizedString = null;
if (word != null && word.getClass() == String.class) {
try {
capitalizedString = word.replace(String.valueOf(word.charAt(0)),
String.valueOf(word.toUpperCase().charAt(0)));
} catch (Exception exc) {
System.out.print(exc);
}
}
return capitalizedString;
}https://codereview.stackexchange.com/questions/199958
复制相似问题