黑马程序员----java编程(2)

来源:互联网 发布:php网站开发框架 编辑:程序博客网 时间:2024/05/17 00:58
---------------------- 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数组转换为Stringprivate 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]+" ");elsesb.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");//第一种取出方式 keysetSet<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);}//第二种取出方式 entrysetSet<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();}}



---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
0 0
原创粉丝点击