精华内容
下载资源
问答
  • Java控制台输入输出

    2020-08-03 11:17:59
    总结java控制台常用输入输出方法

    近日做面试题,需要在控制台输入输出数据,这与leetcode的风格不一样。在此写一篇博文整理总结一下,Java中的控制台输入输出方法。

    1. 输入

    最常用的就是new一个scanner

    	Scanner scanner = new Scanner(System.in);
    	//输入int
    	int n = scanner.nextInt();
    	//输入String
    	String s=scanner.next();
    	//如果要输入的是数组,则可以这么做
    	int[] nums=new int[n];
    	int t=0;
    	while (scanner.hasNextInt()) {
        	nums[t++]=scanner.nextInt();	        
        }
    

    2.输出

    常用的输出方法为System.out.println(),该方法的意思是输出到控制台并换行。
    有时候题目要求对输出的数字保留2位小数等等类似格式化的操作,则可以用到printf,该方法类似C语言中的sprinf()。使用用例可以参考这里

    展开全文
  • java控制台输入输出

    2020-06-10 16:24:27
    java控制台输入 第一步:导入工具。import java.util.Scanner 要写在class的外面。 第二步:把工具准备好。 Scanner 工具变量名 = new Scanner(System.in) 第三步:通过工具接收读取到的内容。 工具变量名.nextInt...

    java控制台输入输出

    1.输出

    class Sum{
    	public static void main(String[] args){
    		System.out.println("输出字符");
    	}
    }
    

    2.输入

    1. 第一步:导入工具。import java.util.Scanner 要写在class的外面。
    2. 第二步:把工具准备好。 Scanner 工具变量名 = new Scanner(System.in)
    3. 第三步:通过工具接收读取到的内容。 工具变量名.nextInt()
    import java.util.Scanner;
    class Sum{
    	public static void main(String[] args){
    		Scanner sc = new Scanner(System.in);
    		System.out.println("请输入第一个整数");
    		int a = sc.nextInt();
    		System.out.println("请输入第二个整数");
    		int b = sc.nextInt();
    		System.out.println("求和结果是:"+(a+b));
    	}
    }
    
    展开全文
  • Java 控制台输入输出

    千次阅读 2016-03-19 21:21:25
    输入: 格式 1 : Scanner sc = new Scanner (new BufferedInputStream(System.in)); 格式 2 : Scanner sc = new Scanner (System.in); 在读入数据量大的情况下,格式 1 的速度会快些。 ...

    1. 输入:

    格式1Scanner sc = new Scanner (new BufferedInputStream(System.in));

    格式2Scanner sc = new Scanner (System.in);

    在读入数据量大的情况下,格式1的速度会快些。

    读一个整数: int n = sc.nextInt()相当于 scanf("%d", &n); 或 cin >> n; 

    读一个字符串:String s = sc.next(); 相当于 scanf("%s", s); 或 cin >> s; 

    读一个浮点数:double t = sc.nextDouble(); 相当于 scanf("%lf", &t); 或 cin >> t; 

    读一整行: String s = sc.nextLine(); 相当于 gets(s); 或 cin.getline(...); 

    判断是否有下一个输入可以用sc.hasNext()sc.hasNextInt()sc.hasNextDouble()sc.hasNextLine()

    1:读入整数

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. Input  输入数据有多组,每组占一行,由一个整数组成。   
    2. Sample Input   
    3. 56  
    4. 67  
    5. 100  
    6. 123   
    7.    
    8. import java.util.Scanner;  
    9. public class Main {  
    10. public static void main(String[] args) {  
    11. Scanner sc =new Scanner(System.in);  
    12. while(sc.hasNext()){  //判断是否结束  
    13. int score = sc.nextInt();//读入整数  
    14. 。。。。  
    15. }  
    16. }  
    17. }  
    18.    


    2:读入实数

     

    输入数据有多组,每组占2行,第一行为一个整数N,指示第二行包含N个实数。

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. Sample Input  
    2. 4   
    3. 56.9  67.7  90.5  12.8   
    4. 5   
    5. 56.9  67.7  90.5  12.8   
    6.    
    7. import java.util.Scanner;  
    8. public class Main {  
    9. public static void main(String[] args) {  
    10. Scanner sc =new Scanner(System.in);  
    11. while(sc.hasNext()){  
    12. int n = sc.nextInt();  
    13. for(int i=0;i<n;i++){  
    14. double a = sc.nextDouble();  
    15. 。。。。。。  
    16. }  
    17. }  
    18. }  
    19. }  
    20.    


    3:读入字符串【杭电2017 字符串统计

    输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. Sample Input    
    2. 2  
    3. asdfasdf123123asdfasdf  
    4. asdf111111111asdfasdfasdf  
    5.    
    6. import java.util.Scanner;  
    7. public class Main {  
    8. public static void main(String[] args) {  
    9. Scanner sc = new Scanner(System.in);  
    10. int n = sc.nextInt();  
    11. for(int i=0;i<n;i++){  
    12. String str = sc.next();  
    13. ......  
    14. }  
    15. }  
    16. }  
    17. import java.util.Scanner;  
    18. public class Main {  
    19. public static void main(String[] args) {  
    20. Scanner sc = new Scanner(System.in);  
    21. int n = Integer.parseInt(sc.nextLine());  
    22. for(int i=0;i<n;i++){  
    23. String str = sc.nextLine();  
    24. ......  
    25. }  
    26. }  
    27. }  
    28.    


    3:读入字符串【杭电2005 第几天?

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. 给定一个日期,输出这个日期是该年的第几天。   
    2. Input  输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成  
    3. 1985/1/20  
    4. 2006/3/12  
    5. import java.util.Scanner;  
    6. public class Main {  
    7. public static void main(String[] args) {  
    8. Scanner sc = new Scanner(System.in);  
    9. int[] dd = {0,31,28,31,30,31,30,31,31,30,31,30,31};  
    10. while(sc.hasNext()){  
    11. int days = 0;  
    12. String str = sc.nextLine();  
    13. String[] date = str.split("/");  
    14. int y = Integer.parseInt(date[0]);  
    15. int m = Integer.parseInt(date[1]);  
    16. int d = Integer.parseInt(date[2]);  
    17. if((y%400 == 0 || (y%4 == 0 && y%100 !=0)) && m>2) days ++;  
    18. days += d;  
    19. for(int i=0;i<m;i++){  
    20. days += dd[i];  
    21. }  
    22. System.out.println(days);  
    23. }  
    24. }  
    25. }  


     

    2. 输出  

    函数:

    System.out.print(); 

    System.out.println(); 

    System.out.format();

    System.out.printf();  

     

    杭电1170Balloon Comes!

    Give you an operator (+,-,*, / --denoting addition, subtraction, multiplication, division respectively) and two positive integers, your task is to output the result. 

    Input

    Input contains multiple test cases. The first line of the input is a single integer T (0<T<1000) which is the number of test cases. T test cases follow. Each test case contains a char C (+,-,*, /) and two integers A and B(0<A,B<10000).Of course, we all know that A and B are operands and C is an operator. 

    Output

    For each case, print the operation result. The result should be rounded to 2 decimal places If and only if it is not an integer.

    Sample Input

    4

    + 1 2

    - 1 2

    * 1 2

    / 1 2

    Sample Output

    3

    -1

    2

    0.50

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. import java.util.Scanner;  
    2. public class Main {  
    3. public static void main(String[] args) {  
    4. Scanner sc =new Scanner(System.in);  
    5. int n = sc.nextInt();  
    6. for(int i=0;i<n;i++){  
    7. String op = sc.next();  
    8. int a = sc.nextInt();  
    9. int b = sc.nextInt();  
    10. if(op.charAt(0)=='+'){  
    11. System.out.println(a+b);  
    12. }else if(op.charAt(0)=='-'){  
    13. System.out.println(a-b);  
    14. }else if(op.charAt(0)=='*'){  
    15. System.out.println(a*b);  
    16. }else if(op.charAt(0)=='/'){  
    17. if(a % b == 0) System.out.println(a / b);  
    18. else System.out.format("%.2f", (a / (1.0*b))). Println();  
    19. }  
    20. }  
    21. }  
    22. }  


    3. 规格化的输出:
    函数:
    // 这里0指一位数字,#指除0以外的数字(如果是0,则不显示),四舍五入.
        DecimalFormat fd = new DecimalFormat("#.00#");
        DecimalFormat gd = new DecimalFormat("0.000");
        System.out.println("x =" + fd.format(x));
        System.out.println("x =" + gd.format(x));

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. public static void main(String[] args) {  
    2.     NumberFormat   formatter   =   new   DecimalFormat( "000000");   
    3.         String  s  =   formatter.format(-1234.567);     //   -001235   
    4.         System.out.println(s);  
    5.         formatter   =   new   DecimalFormat( "##");   
    6.         s   =   formatter.format(-1234.567);             //   -1235   
    7.         System.out.println(s);  
    8.         s   =   formatter.format(0);                      //   0   
    9.         System.out.println(s);  
    10.         formatter   =   new   DecimalFormat( "##00");   
    11.         s   =   formatter.format(0);                     //   00   
    12.         System.out.println(s);  
    13.    
    14.         formatter   =   new   DecimalFormat( ".00");   
    15.         s   =   formatter.format(-.567);               //   -.57   
    16.         System.out.println(s);  
    17.         formatter   =   new   DecimalFormat( "0.00");   
    18.         s   =   formatter.format(-.567);              //   -0.57   
    19.         System.out.println(s);  
    20.         formatter   =   new   DecimalFormat( "#.#");   
    21.         s   =   formatter.format(-1234.567);         //   -1234.6   
    22.         System.out.println(s);  
    23.         formatter   =   new   DecimalFormat( "#.######");   
    24.         s   =   formatter.format(-1234.567);        //   -1234.567   
    25.         System.out.println(s);  
    26.         formatter   =   new   DecimalFormat( ".######");   
    27.         s   =   formatter.format(-1234.567);       //   -1234.567   
    28.         System.out.println(s);  
    29.         formatter   =   new   DecimalFormat( "#.000000");   
    30.         s   =   formatter.format(-1234.567);      //   -1234.567000   
    31.         System.out.println(s);  
    32.           
    33.         formatter   =   new   DecimalFormat( "#,###,###");   
    34.         s   =   formatter.format(-1234.567);      //   -1,235   
    35.         System.out.println(s);  
    36.         s   =   formatter.format(-1234567.890);  //   -1,234,568   
    37.         System.out.println(s);  
    38.    
    39.         //   The   ;   symbol   is   used   to   specify   an   alternate   pattern   for   negative   values   
    40.         formatter   =   new   DecimalFormat( "#;(#) ");   
    41.         s   =   formatter.format(-1234.567);     //   (1235)   
    42.         System.out.println(s);  
    43.    
    44.         //   The   '   symbol   is   used   to   quote   literal   symbols   
    45.         formatter   =   new   DecimalFormat( " '# '# ");   
    46.         s   =   formatter.format(-1234.567);        //   -#1235   
    47.         System.out.println(s);  
    48.         formatter   =   new   DecimalFormat( " 'abc '# ");   
    49.         s   =   formatter.format(-1234.567);      // - abc 1235  
    50.         System.out.println(s);  
    51.    
    52. formatter   =   new   DecimalFormat( "#.##%");   
    53.         s   =   formatter.format(-12.5678987);    
    54.         System.out.println(s);  
    55. }  


    4. 字符串处理 String

    String 类用来存储字符串,可以用charAt方法来取出其中某一字节,计数从0开始: 

    String a = "Hello"; // a.charAt(1) = 'e' 

    substring方法可得到子串,如上例 

    System.out.println(a.substring(0, 4)) // output "Hell" 

    注意第2个参数位置上的字符不包括进来。这样做使得 s.substring(a, b) 总是有 b-a个字符。 

    字符串连接可以直接用 号,如 

    String a = "Hello"; 

    String b = "world"; 

    System.out.println(a + ", " + b + "!"); // output "Hello, world!" 

    如想直接将字符串中的某字节改变,可以使用另外的StringBuffer类。 

    5. 高精度
    BigIntegerBigDecimal可以说是acmer选择java的首要原因。
    函数:add, subtract, divide, mod, compareTo等,其中加减乘除模都要求是BigInteger(BigDecimal)BigInteger(BigDecimal)之间的运算,所以需要把int(double)类型转换为BigInteger(BigDecimal),用函数BigInteger.valueOf().

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. import java.io.BufferedInputStream;  
    2. import java.math.BigInteger;  
    3. import java.util.Scanner;  
    4. public class Main {  
    5. public static void main(String[] args)   {  
    6. Scanner cin = new Scanner (new BufferedInputStream(System.in));  
    7.         int a = 123, b = 456, c = 7890;  
    8.         BigInteger x, y, z, ans;  
    9.         x = BigInteger.valueOf(a);   
    10.         y = BigInteger.valueOf(b);   
    11.         z = BigInteger.valueOf(c);  
    12.         ans = x.add(y); System.out.println(ans);  
    13.         ans = z.divide(y); System.out.println(ans);  
    14.         ans = x.mod(z); System.out.println(ans);  
    15.         if (ans.compareTo(x) == 0) System.out.println("1");  
    16.     }  
    17. }  



    6. 进制转换
    String st = Integer.toString(num, base); // num当做10进制的数转成base进制的st(base <= 35).
    int num = Integer.parseInt(st, base); // st当做base进制,转成10进制的int(parseInt有两个参数,第一个为要转的字符串,第二个为说明是什么进制).  
    BigInter m = new BigInteger(st, base); // st是字符串,basest的进制.
    7. 数组排序
    函数:Arrays.sort();

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. public class Main {  
    2. public static void main(String[] args)    {  
    3.         Scanner cin = new Scanner (new BufferedInputStream(System.in));  
    4.         int n = cin.nextInt();  
    5.         int a[] = new int [n];  
    6.         for (int i = 0; i < n; i++) a[i] = cin.nextInt();  
    7.         Arrays.sort(a);  
    8.         for (int i = 0; i < n; i++) System.out.print(a[i] + " ");  
    9.     }  
    10. }  



    展开全文
  • java控制台输入输出有很多方法,此文分别对其进行介绍。 1、控制台的输入 关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法
    原文地址为:JAVA控制台输入输出方法总结

    java的控制台输入输出有很多方法,此文分别对其进行介绍。


    1、控制台的输入

    关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法,使用起来比较繁琐,输入效率也不高,其次是使用System.in作为输入,感觉此方法不是很灵活。最后,使用Scanner作为输入,这种方法使用起来非常的方便好用,并且功能强大。

    1.1 使用BufferedReader方法输入,这种方法很繁琐

    	//返回输入的一行数据
    public static String readLine1() throws IOException
    {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    return br.readLine();
    }


    1.2 直接使用System.in输入

    	//获得输入的一数据块
    public static String readLine2() throws IOException
    {
    byte buf[] = new byte[1024];
    int i = System.in.read(buf);
    return new String(buf, 0, i-2); //有两个结束符,\r\n,所以要减2
    }


    1.3使用Scanner输入,这种方法最好用

    /**
    * 可以使用s.next()输入一个不含空格的字符串,
    * s.nextInt():输入一个整数
    * s.nextDouble():输入一个double
    * s.nextByte():输入一个字符
    **/
    public static String readLine3()
    {
    Scanner s = new Scanner(System.in);
    return s.nextLine(); //s.nextInt();
    }


    2、控制台的输出

    输出方式总共两种,分别是正常输出和发生错误时的输出。

    两种输出分别为:

    System.out.println("out: "+str);
    System.err.println("err: "+str);


    关于System.out函数的输出,有很多的输出格式,

    在此借用一网友的代码,原文链接: Ajioy的专栏,JAVA控制台输出格式

    public static void main(String[] args)
    {
    //Console print format
    //System.out.printf(format, args);format为指定的输出格式,args参数
    System.out.printf("%+8.3f\n", 3.14); //"+"表示后面输出的数字会有正负号,正的+,负的- ;8.3f表示输出浮点数,宽度为8,小数点保持3位有效
    System.out.printf("%+-8.3f\n", 3.14);//"-"表示靠左对齐
    System.out.printf("%08.3f\n", 3.14);//"0"8位宽度中自动补0
    System.out.printf("%(8.3f\n", -3.14);//"("如果是负数,自动加上( )
    System.out.printf("%,f\n", 123456.78); //","金钱表示方法,每三位有一个逗号
    System.out.printf("%x\n", 0x2a3b); //输出16进制数
    System.out.printf("%#x\n", 0x2a3b);//输出带0x标识的16进制数
    System.out.printf("老板:您名字%s,年龄:%3d岁,工资:%,-7.2f\n","ajioy",21,36000.00);
    System.out.printf("老板:您名字%1$s,年龄:%2$#x岁\n","ajioy",38); //"n{1}quot;表示用第n个参数

    }


     


    转载请注明本文地址:JAVA控制台输入输出方法总结
    展开全文
  • java控制台输入输出有很多方法,此文分别对其进行介绍。1、控制台的输入关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法,使用起来比较繁琐,输入...
  • 一、控制台输入: 1.最常用:Scanner public static void main(String[] args) {System.out.println("请输入数据:"); Scanner scan = new Scanner(System.in); String read = scan.nextLine();System.out.println...
  • 控制台读取数据,可以用BufferedInputStream(JDK1.4以上),Scanner(JDK1.5以上),Console(JDK1.6)以上。我习惯于用Scanner类。 Scanner类无法自己判断输入是否结束,编码者必须要自己从逻辑上判断,比如输入的...
  • java控制台输入输出详解 初学java时,或许大家都遇到过一个问题,从控制台获取字符,大家最常见的便是通过System.in.read();取得输入的字符,代码如下: public static void receiveOneChar(){//得到一个输入的...
  • 本实例通过输入流(System.in)实现从控制台接受用户输入信息,并将该信息输出控制台。 运行效果如下图: 二、实现代码 三、要点说明 该实例的关键就是用到了System类的输入流,也就是in,它...
  • 测试Java控制台输入输出

    千次阅读 2011-08-26 10:32:41
    为了测试控制台输入输出流,以及强化流及流的封装的概念,并练习流的封装,写了这个非常简单的小Java程序。import java.io.*; public class text { public static void main(String[] args) { Input
  • 产生原因:因为这个开源项目的默认字符编码为UTF-8,所以我的控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误(这个问题的解释可以在...
  • JAVA控制台输入输出员工信息

    千次阅读 2013-12-26 18:26:53
    //Employe类 基本信息 ...import java.util.Date; public class Employee { private String name; private double salary; private String sex; private Date birthday; public Employee(){}
  • 产生原因:因为这个开源项目的默认字符编码为UTF-8,所以我的控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误(这个问题的解释可以在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,557
精华内容 1,022
关键字:

java控制台输入输出

java 订阅