求某范围的所有含1 这个数字的数并存盘保存。

来源:互联网 发布:linux pycharm 注册码 编辑:程序博客网 时间:2024/05/16 09:25

/*1. 求某范围的所有含1 这个数字的数并存盘保存。[基础算法+IO]
 ( SpecialDigitals.java  )

   题目要求:
a) 开始和结束范围由用户从控制台(System.in)手工录入。
b) 统计数量并求和。
c) 计算结果保存在 c:\numbers.txt 文件中(每行输出8 个数,可多行显示)。
   文件格式如下:
   开始范围:1
   结束范围:20
   数字:1 10 11 12 13 14 15 16
   …..

   …..

   数字数量:xx 个
   数字和:xxxx
*/

import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Scanner;/** * @author Calm * */public class SpecialDigitals {/** * @param args */public static void main(String[] args) {Scanner input = new Scanner(System.in);int start;     //开始范围int end;   //结束范围int count = 0; //计数器int sum = 0;   //数字和PrintWriter writer = null;try {writer=new PrintWriter(new FileOutputStream(new File("c:/numbers.txt"),true));} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} System.out.print("开始范围: ");writer.print("开始范围: ");start = input.nextInt();writer.println(start);System.out.print("结束范围: ");writer.print("结束范围: ");end = input.nextInt();writer.println(end);System.out.println("\n满足的特殊数字如下: ");writer.println("\n满足的特殊数字如下: ");for(int i = start; i <= end; i++){if(isSpecialDigital(i)){System.out.print(i + "\t");writer.print(i + "\t");sum += i;count++;if(count % 8 ==0){System.out.println();writer.println();}}}System.out.println("\n数字数量: " + count);writer.println();writer.println("数字数量:\n " + count);System.out.println("数字和: " + sum);writer.println("数字和: " + sum);writer.flush();writer.close();}/** * 判断一个整数是否是要求的特征数字 * @param n * @return */public static boolean isSpecialDigital(int n){while(n != 0){if(n % 10 == 1)return true;elsen /= 10;}return false;}}


做这道题的时候发现,writer.print("\n")语句无法将换行操作写入文件,而writer.print('\n')语句就可以。

不明白是什么原因,在控制台输出时,用System.out.print("\n")和System.out.print('\n')都可以输出换行。


原来在windows系统中,写入时换行是用\r\n,writer.print("\r\n");就能写入换行惊讶

0 0