java_读入数据的方式(数组和列表实现例子)

/*

  • .从键盘输⼊多个字符串,对这些字符串按字典序排序。输入格式有两种:
    格式一:输入字符串在一行,中间用空格隔开,如:
    could not find or load main class hadoop

格式二:每行输入一个字符串,最后用-1表示输入结束,如:
could
not
find
or
load
main
class
Hadoop
-1
用数组、ArrayList实现均可。排序可以使用Collections.sort(List
list)方法对List进行排序;*/

/*参考读入数据的方法:
JAVA读入一行空格隔开的数据
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        //对读入的那一整行在作split()操作
        String ss[] = s.split(" ");

        for (String x : ss) {
            System.out.println(x);
        }
    }
}
*/
public class Sort {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //String[] aString = new String[100];
        String tmp = sc.nextLine();/*读入数据行到缓冲字符串区中*/
        String[] aString = tmp.split(" ");/*tmp.split(" ")将产生一系列的元素,装入数组aString,数组的大小为split后产生的元素数目*/
        /*使用增强型for查看是否成功split*/
   /*     for (String i : aString) {
            System.out.println(i);
        }*/
//Arrays.stream(aString).sorted();
        Arrays.sort(aString);
        for (String i : aString) System.out.println(i);
    }
}
package experiment4.exp1;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
import java.util.List;

public class SortEachLine {
    public static void main(String [] args){

        /*建议列表来操作(往往使用泛型列表)<>*/
        List<String> list=new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        /*
        for(int i = 0; !aString[i].equals("-1"); i++);
        Cannot invoke "String.equals(Object)" because "aString[i]" is null
	at SortEachLine.main(SortEachLine.java:10)
	*/
        //System.out.println("enter  data:");
        boolean b;
/*  */      do{

            String tmp=sc.nextLine();
            if(!tmp.equals("-1")){
                list.add(tmp);
            }
            else
                break;
        }while (true);
    /*    //不知为何,用for总是会陷入死循环
    for(int i = 0; !"-1".equals(aString[i]); i++){
            System.out.println("enter a data:");
            aString[i]=sc.nextLine();
        }*/
        /*使用大小不刚好的数组的话,在使用sort方法的时候出现错误:
        Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Comparable.compareTo(Object)" because "a[runHi]" is null
	at java.base/java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:320)
	at java.base/java.util.ComparableTimSort.sort(ComparableTimSort.java:202)
	at java.base/java.util.Arrays.sort(Arrays.java:1040)
	at SortEachLine.main(SortEachLine.java:27)*/

        Collections.sort( list);
        System.out.println(list);

/*  迭代逐行输出列表中元素;
    for(String x:list){
            System.out.println(x);
        }*/
    }
}



posted @ 2024-07-06 15:02  xuchaoxin1375  阅读(20)  评论(0)    收藏  举报  来源