面试中遇到的问题,写一个函数实现字符串的倒叙。
public class StringUtil {
/***
* 字符串倒叙,将字符串倒叙存入另一个字符串
* @param original
* @return
*/
public static String convertString(String original) {
if (original == null || "".equals(original)) {
return "";
}
char[] str = original.toCharArray();
int len = str.length;
char[] temp = new char[len];
for (int i = len-1; i >= 0; i--) {
temp[len-1-i] = str[i];
}
String out = new String(temp);
return out;
}
/***
* 字符串倒叙,将字符串的前后顺序进行交换
* @param original
* @return
*/
public static String convertToString(String original) {
if (original == null || "".equals(original)) {
return "";
}
char[] str = original.toCharArray();
int len = str.length;
char temp;
for (int i = len-1; i > (len-1)/2; i--) {
temp = str[len-1-i];
str[len-1-i] = str[i];
str[i] = temp;
}
String out = new String(str);
return out;
}
/***
* 字符串中的单词倒叙,\b是单词分隔符
* @param original
* @return
*/
public static StringBuffer convertWord(String original) {
String[] orgl = original.split("\\b"); //单词分隔符
int len = orgl.length;
String temp;
for (int i=len-1; i>(len-1)/2; i--) {
temp = orgl[i];
orgl[i] = orgl[len-i-1];
orgl[len-i-1] = temp;
}
StringBuffer out = new StringBuffer();
for (int i=0; i<len-1; i++) {
out.append(orgl[i]);
}
return out;
}
public static void main(String[] args) {
String test1 = StringUtil.convertWord("hi, hello world!").toString();
System.out.println(test1);
}
}