字符串变形
2016-04-21 10:19
218 查看
对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。首先这个字符串中包含着一些空格,就像”Hello World”一样,然后我们要做的是把着个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。比如”Hello World”变形后就变成了”wORLD hELLO”。
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; public class Transform { private String upperAndLower(String s){ StringBuilder sb=new StringBuilder(); for(int i=0,len=s.length();i<len;i++){ char ch=s.charAt(i); if(ch>='a' && ch<='z'){ sb.append((char)(ch-'a'+'A')); }else{ sb.append((char)(ch-'A'+'a')); } } return sb.toString(); } private String ListToString(List<String> list){ StringBuilder sb=new StringBuilder(); for(int i=0,len=list.size();i<len;i++){ String s=list.get(i); if(i==0 && " ".equals(s)){ continue; } if(i>0){ sb.append(" "); } sb.append(s); } return sb.toString(); } public String trans(String s, int n) { List<String> list=new ArrayList<String>(Arrays.asList(s.split(" "))); Collections.reverse(list); List<String> res=new ArrayList<String>(); for(String str:list){ if(" ".equals(str)==true) continue; res.add(upperAndLower(str)); } if(s.endsWith(" ")==true){ res.add(0," "); } return ListToString(res); } }
相关文章推荐
- Wormholes(POJ 3259)
- c++第4次实验-输出星号图
- 第九章 springboot + mybatis + 多数据源 (AOP实现)
- 概率统计 分布
- Oracle字符集和国家字符集
- Android事件分发机制(二)
- test
- 如何处理服务器SSL收到了一个弱临时Diffie-Hellman 密钥?
- 抽象类与接口的区别及应用
- makefile 编写规则
- 使用Yeoman搭建 AngularJS 应用 (7) —— 让我们搭建一个网页应用
- 苏州Uber优步司机奖励政策(4月21日)
- 第一章 AOP
- Understanding and Using HRMS Security in Oracle HRMS
- redis实战
- redis实战
- redis实战
- redis实战
- redis实战
- jquery多属性选择器