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
}