204 字符串中数据排序

11 篇文章 0 订阅

204 字符串中数据排序

例如

字符串{9 2 4 3 5},通过代码输出{2 3 4 5 9}

【难点】分别获取字符串中用空格隔开的单个数据

(查看手册)

public String[] split(String regex)

参数为String,返回String数组,String regex就是隔开数字数据的符号,在这个例子中是空格

将此字符串拆分为给定的表达式和极限参数为零调用双参数split方法。因此,尾随的空字符串不会包含在结果数组中

> 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

> 许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

> 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

【思路】

1.定义一个字符串

2.(难点)把字符串中的数字数据 存储到一个int类型的数组中。。。使用public String[] split(String regex)获取字符串中的单个数字数据。。。定义一个int数组,把String[]数组中的元素存储到int数组中

3.对int数组进行排序

4.把排序后的int数组的元素进行拼接,输出一个字符串,使用StringBuilder实现

5.输出结果

--------------------------------------------------------------

package it03e204;

import java.util.Arrays;

public class IntegerTest {

    public static void main(String[] args) {

//        1.定义一个字符串

        String s = "9 2 4 3 5";

//        2.(难点)把字符串中的数字数据 存储到一个int类型的数组中。。。

//        使用public String[] split(String regex)获取字符串中的单个数字数据。。。

//        通过split方法得到String数组,s.split("空格"),按ctrl alt v生成数组strArray

//        for-loop遍历数组strArray,测试上一行代码的实现效果是否理想

//        output:9<br>2<br>4<br>3<br>5

        String[] strArray = s.split(" ");

//        for(int i = 0;i<strArray.length;i++){

//            System.out.println(strArray[i]);

//        }

//        定义一个int数组,把String[]数组中的元素存储到int数组中,

//        arr[i] = strArray[i] can't work before transfer strArray[i] to a int type data,and Integer.parse would help

//        arr[i] = Integer.parseInt(strArray[i]);

        int[] arr = new int[strArray.length];

        for(int i = 0;i<strArray.length;i++){            ;

            arr[i] = Integer.parseInt(strArray[i]);

            System.out.print(arr[i]+" ");

        }//output:9 2 4 3 5

//        3.对int数组进行排序

        Arrays.sort(arr);

//        4.把排序后的int数组的元素进行拼接,输出一个字符串,使用StringBuilder实现

        StringBuilder sb = new StringBuilder();

        for(int i = 0;i<strArray.length;i++){

            if(i == arr.length-1){

                sb.append(arr[i]);

            }else{

                sb.append(arr[i]).append(" ");

            }

            System.out.print(arr[i]+" ");

        }

        String result = sb.toString();

//        5.输出结果

        System.out.println();

        System.out.println("---result---");

        System.out.println(result);

    }

    //output:

//    9 2 4 3 5 2 3 4 5 9

//            ---result---

//            2 3 4 5 9

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值