/**
* 按指定规则,倒序字符串
* @author Melon 2013/8/7
*/
public class ReverseString {
/**
* @param args
*/
public static void main(String[] args) {
String str = "I love you AnHui_LuAn_HuoQiu ( my-home ) !";
System.out.println("原来:" + str);
System.out.println("\n现在:" + change(str));
}
/**
* 转换
*
* @param str
* @return
*/
private static String change(String str) {
StringBuilder result = new StringBuilder();// 结果
StringBuilder temp = new StringBuilder();// 缓存
String strTemp = null;// 反转后的缓存字符串
char[] array = str.toCharArray();
for (int i = array.length - 1; i >= 0; i--) {
// 循环
if (isLetter(array[i])) {
// 是字母连续缓存
temp.append(array[i]);
if (i == 0) {
// 最后一个是字母,再一次将缓存加进来(否则会丢失最后一个单词)
strTemp = temp.reverse().toString();
temp.setLength(0);
result.append(strTemp);
}
} else {
// 不是字母
// 反转前面的缓存并清空
strTemp = temp.reverse().toString();
temp.setLength(0);
// 照常反序,加上缓存
result.append(strTemp + array[i]);
}
}
return result.toString();
}
/**
* 判断是否为大小写字母
*
* @param character
* 需要判断的字符
* @return 若是大小写字母返回true
*/
private static boolean isLetter(char character) {
return (character >= 65 && character <= 90)
|| (character >= 97 && character <= 122);
}
}
倒序字符串
最新推荐文章于 2020-05-05 21:23:40 发布