//评测题目1: 代码测试题目:字符串反转, 实现一个函数 reverse,
输入参数为一个字符串,将字符串反转并转为大写字母,返回结果字符串。//特殊处理, 对字符串中出现的单词 ali (连续字符) 保留不变, 即保留顺序并保留大小写。
//示例:
//“welcome to alibaba!” -> “!ABABali OT EMOCLEW”
//“ali all in, Ali ilA” -> “ALI ILA ,NI LLA ali”
//“keep ali” -> “ali PEEK”
//“ali” -> “ali”
class Solution {
public static void main(String[] args) {
Solution ss = new Solution();
String st = "ali ali abcd DbcF";
System.out.println(ss.reverseAll(st));
}
public String reverseAll(String str){
String[] st = str.split(" ");
int len = st.length;
StringBuffer sb = new StringBuffer();
for(int i = len - 1; i >= 0; i--){
if(!st[i].equals("ali")){
sb.append(rever(st[i]));
}else sb.append(st[i]);
if(i > 0) sb.append(" ");
}
return sb.toString();
}
public String rever(String st){
int len = st.length();
char[] tm = st.toCharArray();
for(int i = 0; i < len/2; i++){
char ch = tm[i];
tm[i] = tm[len - 1 - i];
tm[len - 1 - i] = ch;
}
for(int i = 0; i < len; i++){
if(tm[i] >= 'a' && tm[i] <= 'z') tm[i] =(char)('A' + (tm[i] - 'a'));//不行的话就强制转换
}
return String.valueOf(tm);
}
}