`

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

相关推荐

    字符串重新排序

    如果条件是新字符串必须递增,我们可以在排序算法中加入相应的比较逻辑;如果条件是相邻数字不能相同,那么在构建新字符串时,我们需要检查当前数字是否与前一个数字相同,如果相同则跳过。 在实现这个功能时,还...

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

    在实际编程中,针对字符串排序,快速排序通常是更高效的选择,因为它的时间复杂度平均为O(n log n),而冒泡排序和插入排序在最坏的情况下时间复杂度为O(n^2)。但基数排序在特定条件下,例如当字符串长度相差较大且...

    字符串排序方法

    #### 描述:字符串排序方法——在JavaScript中的字符串排序技巧。 #### 标签:JS #### 部分内容解析: 虽然提供的代码示例是用Java编写的,但我们可以从中提取出排序的核心思想,并将其应用到JavaScript中。 ### ...

    字符串逆序和排序算法程序java实现源码

    在计算机科学领域,字符串逆序和排序算法是基础且重要的编程概念,特别是在数据结构和算法的学习中。这里我们将深入探讨这两个主题以及它们在Java中的实现。 首先,让我们来看字符串逆序。字符串逆序是一个常见的...

    字符串排序

    #### 二、Java字符串排序方法 在Java中,可以通过多种方式实现字符串排序,包括但不限于使用内置的`Collections.sort()`方法(适用于可变字符序列如`ArrayList&lt;Character&gt;`)、自定义比较器以及编写专门的排序算法...

    java冒泡排序java冒泡排序集锦方法!

    以上三个知识点总结了关于 Java 排序的一些基本应用,包括基础的冒泡排序算法、使用标准库 `Collections.sort()` 进行排序以及使用 `RuleBasedCollator` 实现国际化排序等。这些技术对于编写高效、可维护的 Java ...

    java GUI 实现冒泡排序

    冒泡排序是一种基础的排序算法,...这个项目不仅涵盖了冒泡排序算法,还涉及到了Java GUI编程、字符串处理、数组操作等多个知识点。通过这样的实践,开发者可以更好地理解和掌握这些概念,并且提升软件开发的综合能力。

    JAVA排序算法集合

    以上介绍了Java排序算法中常见的几种方法及其变体。每种算法都有其特点和适用场景,例如当数据量较小时可以选择直接插入排序或直接选择排序;当数据量较大时,归并排序和快速排序则更为合适。理解这些算法的工作原理...

    输入一串字符,对其进行排序

    3. **字符数组创建与排序**:将输入的字符串转换成字符数组,并调用冒泡排序算法进行升序排序。 4. **输出结果**:将排序后的字符数组再次转换为字符串形式,并分别写入两个不同的文件中。 5. **关闭资源**:通过...

    字符串排序(java代码).docx

    本文将通过一个具体的示例,详细介绍如何使用Java实现两种常见的字符串排序方法:选择排序和冒泡排序,并且根据不同的标准(如首字母或字符串长度)进行排序。 #### 二、选择排序按首字母排序 **1. 选择排序原理**...

    采用各种排序算法,支持任意类型数据的小型排序系统

    本项目是一个小型的排序系统,其核心特点在于能够处理任意类型的数据,并且采用了五种不同的排序算法,包括冒泡排序、选择排序、插入排序、快速排序以及堆排序。下面将详细探讨这些知识点。 首先,**泛型**是Java...

    对字符串的排序.doc

    总的来说,这段代码展示了一个简单的Java GUI应用程序,它允许用户输入一个字符串,然后使用冒泡排序算法对其进行排序,并将结果显示在界面上。这是一个很好的学习示例,可以帮助初学者理解字符串操作和冒泡排序的...

    java排序算法.pdf

    SortUtil 是一个 Java 实现的排序算法工具类,提供了多种排序算法的实现,包括冒泡排序、选择排序、插入排序、希尔排序、快速排序、改进快速排序、归并排序、改进归并排序和堆排序等。 SortUtil 类中提供了一个静态...

    冒泡排序的运算方法 一个简单的类

    在提供的代码中,我们看到一个名为`BubbleSort`的类,这个类实现了冒泡排序算法。 1. **初始化数组**: ```java private static int a[] = new int[10]; ``` 数组`a`被声明为静态的,并且长度为10。随后,数组...

    排列字符串工具类

    常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序等。对于字符串排序,通常涉及到字符的比较,因此我们需要一个自定义的比较器来处理不同类型的字符。 在这个“排列字符串工具类”中,核心功能是...

    数组及字符串排序

    在编程领域,数组和字符串排序是基础且至关重要的概念,尤其在处理大量数据时。这里我们探讨一下数组排序和字符串排序的相关知识点。 首先,数组是一种数据结构,它存储了一组相同类型的数据。在Java中,数组是固定...

    Java实现几种常见排序方法-直插、冒泡、选择、快排、堆排等

    在给定的文档中,介绍了多种常见的排序算法,包括冒泡排序、快速排序、选择排序、插入排序等,并提供了相应的Java代码实现。 冒泡排序(Bubble Sort)是一种简单的比较排序算法,其基本思想是通过重复遍历待排序...

    常用排序算法分析与实现(Java版)

    直接插入排序是一种简单的排序方法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 **实现步骤**: 1. **初始状态**:将序列的第一个元素视为已排序区。 2....

    Java常用排序算法

    本文将深入探讨Java中常见的八种排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序以及基数排序。这些算法各有优缺点,适用于不同的场景,理解它们的工作原理对于提升程序性能至关...

    输入10个字符串到一个字符串数组

    - **排序算法**:在 `Test20` 类中,使用了简单的冒泡排序算法对字符串中的字符进行排序。 - **字符比较**:`if (s[j] &gt; s[j + 1])` 用于比较两个相邻字符的大小,以实现排序逻辑。 ### 3. 数组操作 #### 3.1 数组...

Global site tag (gtag.js) - Google Analytics