首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java从字符串中取数目字并排序;冒泡和选择排序算法

2013-11-05 
java从字符串中取数字并排序;冒泡和选择排序算法如题,给出一个字符串,要求从中取出数字并排序。另外附上冒

java从字符串中取数字并排序;冒泡和选择排序算法
如题,给出一个字符串,要求从中取出数字并排序。另外附上冒泡和选择排序算法。

import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** *  * @author Dream.YangLong * */public class ReadNumFromString {private static String str="@123^3*4&7@89#2*5";public static void main(String[] args) {int a[];a=separateNum(str);for (int i = 0; i < a.length; i++) {System.out.println(a[i]);}}/* * 选择排序 * 两层循环,先找出最小的,再找出次小的,第三小的.... */public int[] sortSelect(int a[]){int temp;    //外层循环,控制需比较数字起始位置for (int i = 0; i < a.length-1; i++) {//内层循环,控制比较次数for (int j = i+1; j < a.length-i-1; j++) {if(a[i]>a[j]){//用第一个位置上的数依次和后面的数比较,如果它大了,就将位置让给小的数,第一次选出最小的temp=a[i];a[i]=a[j];a[j]=temp;}}}return a;}/* * 冒泡排序 * 第一次最后一个和它前面一个比较,小就交换位置 * 第二次倒数第二个和它前面一个比较,小就交换位置 * ... */public int[] sortBall(int []a){//冒泡排序int temp;    //控制冒泡轮数,第一轮选出最小的for (int i = 0; i < a.length; i++) {//控制冒泡结束位置for (int j = a.length-1; j >i; j--) {if (a[j] < a[j - 1]) {temp = a[j];a[j] = a[j - 1];a[j - 1] = temp;}}}return a;}public static int[] separateNum(String str){//取数字//str.toCharArray();//在字符串后加不是数字的字符,让最后一位是数字的情况下可以得到正确的结果。str+="$";int[] num;String s="";List<String> list=new ArrayList<String>();for (int i = 0; i < str.length(); i++) {if(Character.isDigit(str.charAt(i))){//如果是数字并且不是最后一位s+=str.charAt(i);}else{if(s!=""){list.add(s);s="";}}}num=new int[list.size()];for (int i=0; i<list.size();i++) {num[i]=Integer.parseInt(list.get(i));}    Arrays.sort(num);return num;}}

热点排行