Java 小知识点集合(三)

作者: 乘风破浪的姐姐 | 来源:发表于2018-06-06 12:51 被阅读7次
    1、转换为字符串,并加入分隔符输出

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

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

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

      <dependency>
             <groupId>commons-lang</groupId>
             <artifactId>commons-lang</artifactId>
             <version>2.6</version>
         </dependency>
    

    方法二,使用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 小知识点集合(三)

        本文链接:https://www.haomeiwen.com/subject/xbejsftx.html