黑马程序员技术交流社区

标题: 从键盘接收多个int型的整数,倒叙打印到文件 [打印本页]

作者: kangnam    时间: 2016-9-18 12:01
标题: 从键盘接收多个int型的整数,倒叙打印到文件
从键盘接收多个int型的整数,直到用户输入end结束 要求:把所有的整数按倒序写到D:\\number.txt中
public class IntDemo {
        public static void main(String[] args) throws Exception {
                Scanner sc =new Scanner(System.in);
                ArrayList<String> list =new ArrayList<>();
                System.out.println("请输入整数,end结束");
                while(true){
                String line =sc.nextLine();
                if(line.equals("end")){
                        break;
                        }else{
                                list.add(line);
                        }
                }
                //创建字符串缓冲区,利用里面的缓冲
                StringBuilder  sb =new StringBuilder();
                for (String s : list) {
                        //拼接整数
                        sb.append(s).append(" ");
                }
                String s =sb.reverse().toString();
                BufferedWriter bw =new BufferedWriter(new FileWriter("1.txt"));
                bw.write(s);
                //关流
                bw.close();
        }
}


我感觉我好像理解错了,是不是单独的值不需要反转,另外上上你的做法参考参考,谢谢
作者: kangnam    时间: 2016-9-18 12:48
各方人士在哪
作者: feng_pump    时间: 2016-9-18 12:52
他说倒序应该是说按从大到小的顺序吧,你在stringbuilder之前加Collections.sort(list);
作者: zhangjiesss    时间: 2016-9-18 13:20
我这有点麻烦,看着挺基础的,你看是这样的吗

package heima.it;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

/**
*
        从键盘接收多个int型的整数,直到用户输入end结束 要求:把所有的整数按倒序写到D:\\number.txt中
* @author Administrator
*
*/

public class Demo2 {

        public static void main(String[] args) throws IOException {
               
                System.out.println("请输入数据,输入end结束");
               
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
               
                BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\number.txt"));
               
                String line=null;
               
                while((line=br.readLine())!=null){
                       
                       
                        if ("end".equals(line)) {
                               
                                break;
                               
                        }
                       
               
               
        //        String line=br.readLine();
               
                StringBuffer sb=new StringBuffer();
               
                sb.append(line);
               
                char[] ch=sb.toString().toCharArray();
               
                for (int i = 0; i < ch.length; i++) {
                       
                        for (int j = 0; j < ch.length; j++) {
                               
                                if (ch[i]>ch[j]) {
                                       
                                        char temp=ch[i];
                                       
                                        ch[i]=ch[j];
                                       
                                        ch[j]=temp;
                                       
                                }
                               
                        }
                       
                }
               
                String str=new String(ch);
               
                bw.write(str);
               
                }
               
                bw.close();
               
                br.close();
               
               
               
               

        }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2