Total Accepted: 29346
Total Submissions: 50197
Difficulty: Easy
Write a function that takes a string as input and returns the string reversed.
Example:
Given s = "hello", return "olleh".
两种方式:
1、迭代
public class Solution {
public String reverseString(String s) {
int n = s.length();
if(n <= 1) return s;
String leftString = s.substring(0,n/2);
String rightString = s.substring(n/2,n);
return reverseString(rightString) + reverseString(leftString);
}
}
substring方法如下:
public String substring(int beginIndex, int endIndex)
第一个int为开始的索引,对应String数字中的开始位置,
第二个是截止的索引位置,对应String中的结束位置
1、取得的字符串长度为:endIndex - beginIndex;
2、从beginIndex开始取,到endIndex结束,从0开始数,其中不包括endIndex位置的字符
如:
"hamburger".substring(4, 8) returns "urge"
"smiles".substring(1, 5) returns "mile"
取长度大于等于3的字符串a的后三个子字符串,只需a.subString(a.length()-3, a.length());
2、不迭代
public class Solution {
public String reverseString(String s) {
if(s.length() == 0) return s;
else{
char[] chars = s.toCharArray();
for(int i = 0; i < chars.length/2; i++) {
char temp = chars[i];
chars[i] = chars[chars.length-1-i];
chars[chars.length-1-i] = temp;
}
return String.valueOf(chars);
}
}
}
java中如何将char数组转化为String?
1.直接在构造String时建立。 char data[] = {'s', 'g', 'k'}; String str = new String(data);
2.String有方法可以直接转换。 String.valueOf(char[] chr)就可以。 如:
char[] cha = {'s','g','h'}; String n = String.valueOf(cha);