前言
面试一家公司Java开发初级工程师的编程题目
是在Showmebug上进行线上笔试的,平台有点烂,测试用例都没通过,但是还是提交了。
一、题目要求
设计一个函数,要求输入的字符串由单词组成,由空格划分,其中由五个或更多字母组成的单词都进行颠倒输出。
eg:This is a String
result:This is a gnirtS
二、代码
/**
* @param str
* @return 字符串(单词由五个或超过五个字母组成的需要颠倒)
*/
public static String reverseString(String str) {
//健壮性检验
if (isDigit(str)) {
return "字符串只能包含英文字母。";
}
String reverseStr = "";
String[] words = str.split(" ");//拆分字符串
//遍历字符串
for (int i = 0; i < words.length; i++) {
//判断是否超过五个或以上字符组成
if (words[i].length() > 4) {
//进行字符串颠倒
StringBuilder stringBuilder = new StringBuilder(words[i]);
words[i] = stringBuilder.reverse().toString();
}//拼接字符串
reverseStr += words[i] + " ";
}
return reverseStr;
}
三、测试结果