package com.heima.tets;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;
/**
* 分析以下需求,并用代码实现: (1)有一个数字字符串"25 11 -6 20 102 9",数字之间用空格间隔
* (2)利用冒泡排序对这串数字按照从小到大排序,生成一个数值有序的字符串"-6 9 11 20 25 102"
* (3)提示:用String类提供的split方法(用" "(空格)作为split方法的参数来切割),然后生成对应的数字字符串数组
* (4)将最后的排序的结果写到当前项目的text文件当中
*
* @author Administrator
*
*/
public class Test1 {
public static void main(String[] args) throws IOException {
System.out.println("请输入数字字符串:");
Scanner sc =new Scanner(System.in);
String s = sc.nextLine();
String[] str = s.split(" ");//创建一个字符串数组接收切割好的字符串
int[] arr = new int[str.length];
for (int i=0;i<arr.length;i++ ) {
arr[i]=Integer.parseInt(str[i]);//转换为int类型接收
}
sort(arr);
//将整形数组转化成字符串
StringBuilder sb = new StringBuilder();
//遍历arr数组
for(int i = 0;i<arr.length;i++){
if(i==arr.length-1){//判断是否为最后一位
sb.append(arr[i]);//添加进缓冲区
}else {
sb.append(arr[i]).append(" ");
}
}
//创建输出流
FileOutputStream fos = new FileOutputStream("text.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
//将字符串写入 文件要转为字节数组
bos.write(sb.toString().getBytes());
bos.close();//关闭流
}
//冒泡排序
public static void sort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j]= arr[j+1];
arr[j+1]= temp;
}
}
}
}
}
|
|