Java 小知识点集合(三)

1、转换为字符串,并加入分隔符输出

方法有很多,这里只列出两种比较简单易懂的。
方法一,使用commons-lang包下的StringUtils.join方法

 public String listToString(List list, char separator) {   
         return StringUtils.join(list.toArray(),separator);    
}

上述方法中,传入两个参数:要转化为字符串的List ;要使用的分隔符。在maven工程的pom.xml文件中需要引入commons-lang包

  
         commons-lang
         commons-lang
         2.6
     

方法二,使用StringBuilder的append方法追加

public String listToString(List list, char separator) {    
        StringBuilder sb = new StringBuilder();    
        for (int i = 0; i < list.size(); i++) {        
            sb.append(list.get(i)).append(separator);    
        }    
        return sb.toString().substring(0,sb.toString().length()-1);
}

上述方法中,同样传入两个参数:要转化为字符串的List ;要使用的分隔符。StringBuilder是jdk1.5引入的新类,在默认的java.lang包中,不需要导入。
这里是先定义StringBuilder,然后循环list,将循环出的结果追加到StringBuilder中,并且在每个循环的结果后追加分隔符。最后返回时截取第一个字符到最后一个分隔符之间的内容即可。

2、从控制台输入数据的几种常用方法

方法一,控制台输出,使用java.util.Scanner

    public static void ScannerInputAndOut(){
        Scanner in = new Scanner(System.in);
        System.out.println(in.nextLine());
    }

通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。获取输入的内容,调用Scanner的nextLine()方法即可。

方法二,字节流输出,使用System.in.read()

 public static void ByteInputAndOut(){
        //输入
        BufferedInputStream in = new BufferedInputStream(System.in);
        try {
            byte[] b = new byte[1024];
            in.read(b);
            System.out.println(new String(b));
        } catch (IOException e) {
            e.printStackTrace();
        }
        //输出
        BufferedOutputStream out = new BufferedOutputStream(System.out);
        try {
            for (int i = 0; i < 5; i++) {
                out.write("hello".getBytes());
            }
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

API从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。返回一个整型字节数据,如果到达流的末尾,则返回 -1。
重复调用System.in.read()实际上是在遍历该流中的每一个字节数据。
方法三,字符流输出,使用BufferedReader

 public static void CharInputAndOut(){
        //输入
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        try {
            System.out.println(in.readLine());
        } catch (IOException e) {
            e.printStackTrace();
        }
        //输出
        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
        try {
            for (int i = 0; i < 5; i++) {
                out.write("hello"+i);
                out.newLine();
            }
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

你可能感兴趣的:(Java 小知识点集合(三))