JAVA字符串反转
考虑到在我的笔试题目中经常用到原理,现做一个小结
方法一:使用StringBuilder的reverse()方法,个人觉得这是最简单的一种,调用一下自身的方法就可以完成了。
public static String reverseElement(String element) {
StringBuilder result = new StringBuilder(element);
return result.reverse().toString();
}
方法二:使用字符串数组,使用字符串数组,实现从尾部开始逐个逆序放入字符串,这样也可以实现字符串的反转。
public static String reverseElement2(String element) {
char [] charArray = element.toCharArray();
StringBuilder result = new StringBuilder();
for(int i=charArray.length - 1;i > = 0;i--){
result.append(charArray[i])
}
return result.toString();
}
方法三:使用String的CharAt方法,使用String的CharAt方法取出字符串中的各个字符,然后插入到字符串中,调用StringBuilder的insert()方法进行操作。
public static String reverseElement3(String element) {
StringBuilder result = new StringBuilder();
int length = element.length();
for(int i = 0;i<length;i++){
result.insert(0,element.charAt(i));
}
return result.toString();
}
方法四:使用递归的方法,实现字符串反转。
思路是字符串转换成字符数组,每次截取字符串的首字符放到最后,并再次对剩余字符串递归截取首字符
public static String reverseElement4(String element) {
//首先判断一下字符串是不是空和长度异常
if(element == null || element.length() <= 1){
return element;
} else{
return reverserElement4(element.substring(1))+element.charAt(0);
}
}
这里涉及到String类的substring()方法
方法如下:
1、 public String substring(int beginIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。
参数:beginIndex - 开始处的索引(包括), 返回:指定的子字符串,
异常:如果 beginIndex 为负或大于此 String 对象的长度,则抛出IndexOutOfBoundsException
例 :“unhappy”.substring(2) returns"happy"
“mybaby”.substring(3) returns"aby"
2、public String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始, endIndex:到指定的 endIndex-1处结束。
参数:beginIndex - 开始处的索引(包括) endindex 结尾处索引(不包括)。
返回:指定的子字符串。
抛出:如果 beginIndex 为负,或length大于字符串长度,则抛出IndexOutOfBoundsException
例:“hamburger”.substring(3,8) returns “burge”
“smiles”.substring(0,5) returns “smile”