----------------------
ASP.Net+Android+IOS开发、
.Net培训、期待与您交流! ----------------------
===>NO.5
public class Test5 {
/**
* "12 0 99 -7 30 4 100 13"要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。
* "-7 0 4 12 13 30 99 100"
*思路:
*1,将字符串切割。变成字符串数组。
*2,将字符串数组转成int数组。
*3,int数组排序。
*4,将int数组变成字符串。
*/
public static void main(String[] args) {
String str="12 0 99 -7 30 4 100 13";
String [] arr=str.split(" ");
int [] numArr=toIntArray(arr);
sort(numArr);
String newStr=intArraytoString(numArr);
System.out.println(newStr);
}
//把字符串数组转变为int数组
private static int[] toIntArray(String [] arr){
int [] num=new int[arr.length];
for(int i=0;i<arr.length;i++){
num[i]=Integer.parseInt(arr[i]);
}
return num;
}
//对int数组进行排序
private static void sort(int[] numArr){
for(int i=0;i<numArr.length-1;i++){
for(int j=i+1;j<numArr.length;j++){
if(numArr[i]>numArr[j]){
int temp=numArr[i];
numArr[i]=numArr[j];
numArr[j]=temp;
}
}
}
}
//把int数组转换为String
private static String intArraytoString(int [] numArr){
StringBuilder sb=new StringBuilder();
for(int i=0;i<numArr.length;i++){
if(i!=numArr.length-1)
sb.append(numArr[i]+" ");
else
sb.append(numArr[i]);
}
return sb.toString();
}
//使用TreeSet
/*
* String str = "90 -7 0 18 2 45 4";
String[] arr = str.split(" ");
TreeSet ts = new TreeSet();
for(int x=0; x<arr.length; x++)
{
ts.add(Integer.parseInt(arr[x]));//
}
System.out.println(ts);
StringBuilder sb=new StringBuilder();
for(Iterator it=ts.iterator();it.hasNext();){
sb.append(it.next()+" ");
}
String s=sb.toString();
System.out.println(s);
*
*/
}
===>NO.6
public class Test6 {
/**
* 每一个学生都有对应的归属地。
* 学生Student,地址String。
* 学生属性:姓名,年龄。
* 注意:姓名和年龄相同的视为同一个学生。
* 保证学生的唯一性。
*/
public static void main(String[] args) {
HashMap<Students,String> hm=new HashMap<Students,String>();
hm.put(new Students("张三",30),"beijin");
hm.put(new Students("张三",30),"tianjin");
hm.put(new Students("李四",43),"shagnhai");
hm.put(new Students("王五",23),"guangzhu");
//第一种取出方式 keyset
Set<Students> keyset=hm.keySet();
Iterator<Students> it=keyset.iterator();
while(it.hasNext()){
Students stu=it.next();
String value=hm.get(stu);
System.out.println(stu+":"+value);
}
//第二种取出方式 entryset
Set<Map.Entry<Students, String>> entryset=hm.entrySet();
Iterator<Map.Entry<Students, String>> iter=entryset.iterator();
while(iter.hasNext()){
Map.Entry<Students, String> me=iter.next();
Students st=me.getKey();
String val=me.getValue();
System.out.println(st+":"+val);
}
}
}
class Students implements Comparable<Students>{
private String name;
private int age;
public Students(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int hashCode() {
return name.hashCode()+age*38;
}
public boolean equals(Object obj) {
if(!(obj instanceof Students))
throw new ClassCastException("类型不匹配");
Students stu=(Students)obj;
return this.name.equals(stu.name) && this.age==stu.age;
}
public String toString() {
return name+":"+age;
}
public int compareTo(Students s) {
int num=new Integer(this.age).compareTo(new Integer(s.age));
if(num==0)
return this.name.compareTo(s.name);
return num;
}
}
===>NO.7
public class Test7 {
/*
* 练习:"sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数。
* 希望打印结果:a(1)c(2).....
*/
public static void main(String[] args) {
String s=charcount("sdfgzxcvasdfxcvdf");
System.out.println(s);
}
private static String charcount(String str) {
char [] ch=str.toCharArray();
TreeMap<Character,Integer> tm=new TreeMap<Character,Integer>();
int count=0;
for(int i=0;i<ch.length-1;i++){
if(!(ch[i]>'a'&&ch[i]<'z' || ch[i]>'A'&&ch[i]<'Z'))
continue;
Integer value=tm.get(ch[i]);
if(value!=null)
count=value;
count++;
tm.put(ch[i], count);
count=0;
}
StringBuilder sb=new StringBuilder();
Set<Map.Entry<Character, Integer>> entryset= tm.entrySet();
Iterator<Map.Entry<Character,Integer>> it= entryset.iterator();
while(it.hasNext()){
Map.Entry<Character, Integer> me=it.next();
Character key=me.getKey();
Integer value=me.getValue();
sb.append(key+"("+value+")"+" ");
}
return sb.toString();
}
}