import java.util.HashSet;
import java.util.Set;//1、 将字符串”One world one Dream”进行以下处理
//1) 将每个单词第一个字母转换为大写,然后输出
//2) 将1)得到的结果过滤重复的单词
//3) 将2)得到的结果去掉所有的空格,然后将字符串倒置
//4) 将3) 得到的结果统计各个字符的个数public class StringE1 {
public static void main(String[] args) {
String s = "One world one Dream";
String[] sa = s.split(" ");
for (int i = 0; i < sa.length; i++) {
sa[i] = sa[i].replace(sa[i].substring(0, 1), sa[i].substring(0, 1)
.toUpperCase());
System.out.print(sa[i]+" "); }
System.out.println();
System.out.println("--------------");
// char[]a = new char[sa.length];
String s1 = "";
for (int i = 0; i < sa.length; i++) {
s1 = s1 + sa[i] + " ";
}
E1(s1);
} private static void E1(String s1) {
Set as = new HashSet();
String[] a = s1.split(" ");
String s2 = "";
for (int i = 0; i < a.length; i++) {
as.add(a[i]);
}
for (Object ss : as) {
s2 = ss +s2 + " ";
}
System.out.print(s2);
System.out.println();
System.out.println("--------------");
String[] a2 = s1.split(" ");
String s3 = "";
for (int i = 0; i < a2.length; i++) {
s3 = s3 + a[i];
}
char[] a1 = new char[s3.length()];
for (int i = s3.length() - 1; i >= 0; i--) {
a1[s3.length() - 1 - i] = s3.charAt(i);
}
String s4 = "";
for (int i = 0; i < a1.length; i++) {
System.out.print(a1[i]);
s4 = s4 + a1[i];
}
System.out.println();
System.out.println("--------------");
while (true) {
int len = s4.length();
if (len > 0) {
String ch = s4.substring(0, 1);
s4 = s4.replace(ch, "");
System.out.println("字母 '" + ch + "' 出现次数 : "
+ (len - s4.length()));
} else {
break;
} }
}
}这样的题目 这样写 感觉非常不健壮 漏洞不少 有没高手帮忙改进一下
如果要学习, 也可以看看那里面的源码.
import java.util.HashSet;
import java.util.Iterator;public class StringTest { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str ="One world one Dream";
//第一个字母变成大写
String q1=Q1(str);
System.out.println("第1题答案:"+q1);
//第二个过滤重复单词
String q2=Q2(q1);
System.out.println("第2题答案:"+q2);
//第三个去掉空格 倒置
String q3=Q3(q2);
System.out.println("第3题答案:"+q3);
//第四个 答案
Q4(q3);
}
public static String Q1(String str){
String[] arr = str.split("\\s");
String str2=" ";
for(int i= 0;i<arr.length;i++ ){
arr[i]=arr[i].replaceFirst("([a-z]|[A-Z])",arr[i].substring(0, 1).toUpperCase());
str2 +=" "+ arr[i];
}
return str2.trim();
}
public static String Q2(String str){
String str2="";
String[] arr = str.split("\\s");
HashSet hs = new HashSet();
for(int i= 0;i<arr.length;i++ ){
if(!(hs.add(arr[i]))){
hs.remove(arr[i]);
}
}
for(Object ss:hs){
str2 +=" "+(String)ss;
}
return str2;
} public static String Q3(String str){
String str2="";
String[] arr = str.split("\\s");
for(int i=0;i<arr.length;i++){
str2 += arr[i];
}
StringBuffer sb= new StringBuffer(str2);
str2=sb.reverse().toString();
return str2;
} public static void Q4(String str){
char[] temp = str.toCharArray();
HashMap hm = new HashMap();
for(int i=0;i<temp.length;i++){
if(!hm.containsKey(temp[i])){
hm.put(temp[i], new Integer(1));
}
else{
Integer in= (Integer)hm.get(temp[i])+1;
hm.put(temp[i], in);
}
}
Iterator it = hm.keySet().iterator();
while(it.hasNext()){
Object o=it.next();
System.out.println("字符"+o.toString()+"的出现次数是"+hm.get(o));
}
}
}