第一题:List list=new ArrayList();
list.add(a);
list.add(b);
list.add(c) 最后要输出的效果为 'a','b','c'也就是把a和b和c加个'',中间还要有逗号,c的后面没有.求好的方法
第二题:随便一个字符串,比如:String str="zhAngSAN";字符串里面有大写也有小写,让你输出的效果为先从a-z,在到A-Z,效果如下h(1)n(1)g(1)z(1)A(2)N(1)S(1)括号里是他出现的次数
list.add(a);
list.add(b);
list.add(c) 最后要输出的效果为 'a','b','c'也就是把a和b和c加个'',中间还要有逗号,c的后面没有.求好的方法
第二题:随便一个字符串,比如:String str="zhAngSAN";字符串里面有大写也有小写,让你输出的效果为先从a-z,在到A-Z,效果如下h(1)n(1)g(1)z(1)A(2)N(1)S(1)括号里是他出现的次数
package scjp;import java.util.ArrayList;
import java.util.List;public class TestArrayList { public static void main(String[] args){
List list=new ArrayList();
list.add("a");
list.add("b");
list.add("c");
for(int i=0;i<list.size();i++){
String str=(String)list.get(i);
str="\'"+str+"\'";
System.out.println(str);
}
}
}
import java.util.*;public class a{
public static void main(String args[]){
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
StringBuffer sb = new StringBuffer();
int i=0;
for(;i<list.size()-1;i++){
sb.append("\'"+(String)list.get(i)+"\',");
}
sb.append("\'"+(String)list.get(i)+"\'");
System.out.println(sb);
}
}
for(int i=0;i<list.size();i++){
String str=(String)list.get(i);
str="\'"+str+"\'";
if (i !=list.size -1)
str = str + ",";
System.out.println(str);
}
第二个
public static void getCharactor(String s) {
int count = 0;
int index = 0;
int tmp = 0;
byte k = 97;
while (k != -1) {
for (byte i = k; i < k + 26; i++) {
String string = new String(new byte[] { i });
for (int j = 0; j < s.length(); j++) {
index = s.indexOf(string, tmp);
if (index != -1) {
count++;
tmp = index + 1;
}
}
if (count != 0)
System.out.print(string + "(" + count + ")");
count = 0;
tmp = 0;
}
if (k == 97)
k = 65;
else if (true)
k = -1;
else
break;
}
}
break;没的用 删除掉
public static Map<Character, Integer> countLetters(String s) {
Map<Character, Integer> lowerCase = new TreeMap<Character, Integer>();
Map<Character, Integer> upperCase = new TreeMap<Character, Integer>();
Map<Character, Integer> result = new LinkedHashMap<Character, Integer>();
for (int i = 0; i < s.length(); i++) {
Character c = new Character(s.charAt(i));
if (Character.isLowerCase(c)) {
if (lowerCase.containsKey(c))
lowerCase.put(c, new Integer(lowerCase.get(c).intValue()+1));
else
lowerCase.put(c , new Integer(1));
}
else if (Character.isUpperCase(c)) {
if (upperCase.containsKey(c))
upperCase.put(c, new Integer(upperCase.get(c).intValue()+1));
else
upperCase.put(c , new Integer(1));
}
}
result.putAll(lowerCase);
result.putAll(upperCase);
return result;
}
用 StringBuffer 和 i<list.size()-1 方法来提高性能。
当list.size()非常大的时候,省掉一句 if (i != list.size()-1),性能能提高很多
Neil_Dang(C∞l Dog):
if (i !=list.size -1)
无法编译
应改为if(i!=list.size()-1)
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;public class TestArrayList { public static void main(String[] args) {
TestArrayList test = new TestArrayList();
Map map = TestArrayList.countLetters("aAdaedw");
test.getUserString(map);
//System.out.println(map.size() + "=========" + map); } public static Map<Character, Integer> countLetters(String s) {
Map<Character, Integer> lowerCase = new TreeMap<Character, Integer>();
Map<Character, Integer> upperCase = new TreeMap<Character, Integer>();
Map<Character, Integer> result = new LinkedHashMap<Character, Integer>();
for (int i = 0; i < s.length(); i++) {
Character c = new Character(s.charAt(i));
if (Character.isLowerCase(c)) {
if (lowerCase.containsKey(c))
lowerCase.put(c, new Integer(
lowerCase.get(c).intValue() + 1));
else
lowerCase.put(c, new Integer(1));
} else if (Character.isUpperCase(c)) {
if (upperCase.containsKey(c))
upperCase.put(c, new Integer(
upperCase.get(c).intValue() + 1));
else
upperCase.put(c, new Integer(1));
}
}
result.putAll(lowerCase);
result.putAll(upperCase);
return result;
} public void getUserString(Map map) { Map mapUse = map; Set keys = map.keySet();
Iterator keyIter = keys.iterator();
while (keyIter.hasNext()) { Object nextName = keyIter.next();
Object phoneNum = map.get(nextName);
System.out.print(nextName + "(" + phoneNum + ")");
} }
}
结帖!我看你是冤枉写了那么多代码,谁叫我们学的是Java的呢——开源呗。