您的位置:首页 > 其它

leetcode-Reverse Vowels of a String

2016-04-26 13:07 351 查看
Write a function that takes a string as input and reverse only the vowels of a string.

Example 1:

Given s = "hello", return "holle".

Example 2:

Given s = "leetcode", return "leotcede".

代码解析:

public class Solution {
public static String reverseVowels(String s) {
// if(s == null) return null;
int len = s.length();
char tmp;
//构造数组操作
char[] arr = s.toCharArray();
for(int i =0 ,j=len-1 ; i<j ;i++,j--){
char chi = arr[i];
if(!isVowels(chi)){
j++;
continue;
}
char chj = arr[j];
if(!isVowels(chj)){
i--;
continue;
}
if(isVowels(chi)&&isVowels(chj)){
//因为string是不可变的~~~!!!!所以不能赋值
tmp = arr[i];
arr[i] = arr[j];
arr[j]= tmp;
//s.charAt(i) = chj;
//上述形式为什么老是编译不过???
//因为String一旦定义好,就不可改变!!!!因此将String -> Arrays!!!
}
}
//char -> string ,使用 String.valueOf(), arrays.toString()返回的不是原样式的String
return String.valueOf(arr);
}
public static boolean isVowels(char ch){
if(ch=='A'||ch=='E'||ch=='I'||ch=='O'||ch=='U'||ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u') return true;
return false;
}

}

总结:Array -> String三种方式:

1、String.valueOf(arr); //直接传入

2、new String(arr); //直接传入

3、sb = new StringBuilder();

sb.append(arr[i]); //依次传入

String -> array: str.toCharArray(); 字符数组

char -> int : i = char-'0';

int -> char : char = i+'0';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: