`

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;
}
}
分享到:
评论

相关推荐

    字符串排序

    一个java的字符串冒泡算法 字符串排序 字符串排序 字符串排序

    用冒泡、插入、快速排序等对这些字符串按照字典顺序进行排序实验

    某个二维数组存放了一系列的字符串,试利用排序的一些算法(如插入、冒泡、快速排序等)例如:二维数组的字符串如下: char s[][20]={“while”,”if”,“else”,”do”,“for”,”switch”,“case”,};

    数据结构与算法复习(Java):排序、字符串、数组、链表、二分查找、二叉树.zip

    算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...

    Java语言程序设计课件第四章 数组、字符串、向量和哈希表

    Java语言程序设计课件第四章 数组、字符串、向量和哈希表,参考教材是清华大学雍俊海编写的Java程序设计教程第3版

    java笔试常见的算法题

    全排序、二分查找、冒泡排序、阶乘、最大公约数、最小公倍数、打印九九乘法表、判断素数、快速排序的递归实现和非递归实现、随机数、字符串操作、50人围成一圈,数到3和3的倍数的人出局,最后剩下的人是谁。...

    Java期末复习题编程题(47道)和选择题(30道) 包括异常处理和接口以及普通编程题

    编写一个Java程序,实现冒泡排序算法对一个整数数组进行排序。 编写一个Java程序,读取一个文本文件,并统计文件中每个单词的出现次数。 编写一个Java程序,实现一个简单的计算器,可以进行加、减、乘、除运算。 ...

    java各种算法,类似于冒泡,汉诺塔,三阶幻方,判断回文

    3. 排序冒泡法 4. 求数组中最大的数和最小的数,并输出 5. 当前月的下一个月是上一月是 6. 三阶幻方 7. 判断回文 8. 判断两个字符串中相同位置上相等的字符 两个字符串中相同的字符,不重复 9. 判断数组是否相等 10...

    常见面试算法题目

    2. 冒泡排序 3. 1~100共一百个自然数,放入一个只有99个元素的数组中,找出没有被放入数组的这个数; 4. 字符串的反转输出 5. 截取字符串, 如果该字符串是“abc我的”,当截取的字节数是3时候就是"abc',如果是4,...

    java常用代码

    15.Arithmetic.java 排序算法之冒泡 16.CompareObj.java 对象排序实现 17.SetAndList.java set的简单操作极其hashcode应用 18.Singleton.java java设计模式之单例模式 19.Factory.java 设计模式之工厂模式 20....

    C/C++常用算法手册.秦姣华(有详细书签).rar

    4.2.2 冒泡排序算法示例 102 4.3 选择排序法 104 4.3.1 选择排序算法 104 4.3.2 选择排序算法示例 105 4.4 插入排序法 107 4.4.1 插入排序算法 107 4.4.2 插入排序算法示例 108 4.5 Shell排序法 110 4.5.1 ...

    java小例子涵盖了基本的编程概念和常见的问题解决方法

    7. 反转字符串:将给定的字符串反转,并打印反转后的结果。 8. 查找数组中的最大值:在给定的数组中找到最大的数,并打印结果。 9. 冒泡排序:对给定的整数数组进行冒泡排序,并打印排序后的结果。 10. 计算圆的面积...

    DataStructuresAndAlgorithms:Java中常见的数据结构和算法

    我的计划是在 Java 中实现通用数据结构和算法作为实践。 我也希望这对任何想要学习/刷新非常基本的数据结构和算法的人来说都是有用的材料。 排序 冒泡排序 选择排序 插入排序 归并排序 快速排序 壳排序 计数排序 ...

    LeetCodeAndSwordToOffer:LeetCode、SwordToOffer 等 Java 算法

    02.字符串 03.树 04.哈希表 05.栈和队列 06.图 07.位运算 08.链表 程序基本输入输出 基础算法 返回目录 # English Title Chinese Title Solution 1 InB_ArrayAndNotInA_Array 找出在数组 B 中而不在数组 A 中的数 ...

    LeetCode判断字符串是否循环-coding-challenges:编码挑战

    LeetCode判断字符串是否循环编码挑战 算法 搜索 在线裁判 排序 冒泡排序 桶排序 梳状排序 计数排序 堆排序 插入排序 归并排序 快速排序 基数排序 选择排序 壳排序 视频 在线裁判 动态规划 视频 在线裁判 贪婪的 在线...

    leetcode会员怎么买便宜-leetcode:javascript数据结构和算法

    冒泡排序 选择排序 按奇偶排序数组 数组中第k个最大元素 最大间距 缺失的第一个正数 递归 复原IP地址 与所有单词相关联的字符串 数据结构 堆 根据字符出现频率排序 超级丑数 栈 棒球比赛 最大矩形 队列 设计循环队列...

    JavaScript之排序函数_动力节点Java学院整理

    如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。通常规定,对于两个元素x和y,如果认为x &lt; y xss=removed&gt; y,则返回1,...

    tictactoeleetcode-JavaPlayground:Java注解、线程使用、设计模式、算法训练等

    从数组中查找缺失的数字 找到第二大值 求最小公数 查找最低、最高索引 向左移动零 基本 位移位 行分隔符 井字游戏 行分隔符 数据结构 比较器 枚举器 迭代器 排序图 堆 归并排序 集合框架 列表示例 设置示例 地图示例...

    java自学之道

    3.2冒泡排序算法 3.3 快速排序算法 3.4选择排序算法 3.5直接插入算法 3.6希尔排序算法 3.7 二分查找算法 3.8 二叉树 3.9 图的实现 3.10 生产者消费者的实现 3.11 银行家算法 3.12 KMP算法 3.13 RSA的实现 第4章 IO流...

    50个必会的数据结构及算法实现源码

    问题:实现归并排序、快速排序、插入排序、冒泡排序、选择排序 问题:编程实现O(n)时间复杂度内找到一组数据的第K大元素 二分查找、散列表、字符串处理、二叉树、堆、图、回溯、分治、动态回归等。 资源中包括常用...

    java:Java Repository 包含算法、数据结构、设计模式、问题解决方案等的 Java 实现,

    Java 该项目包含几个子模块,包括 Java POC - 使用我的示例说明的 Java 概念 ...字符串算法 迷宫问题 数据结构 - 不同数据结构的 Java 实现 动态规划 (DP) 实现 竞赛代码 1. TopCoder 2. HackerRank 设计模式实现

Global site tag (gtag.js) - Google Analytics