ACM模式细节

牛客网的ACM模式需要自己写输入输出,在这里简单记录一下:

基本答题框架:

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        // ...

        sc.close();
    }
}

常见的输入形式:

next()、nextLine()、nextInt()、nextFloat()、nextDouble();

对于数字类型的输入比较好懂,有坑的是 next()nextLine()

Q: next()nextLine()有什么区别?
A:

  • next() 会自动消掉有效字符前的空格,只返回输入的字符,不能得到带空格的字符串;
  • next()在输入有效字符之后,将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符;
  • nextLine() 方法返回的是 Enter 键之前的所有字符,它是可以得到带空格的字符串的;
  • nextLine()的结束符只有 Enter 键;

注意点:

在每一个 next()、nextDouble() 、nextFloat()、nextInt() 等语句之后加一个 nextLine() 语句,将被 next() 去掉的Enter结束符过滤掉。

举个例子🌰:

import java.util.*;
/*
用例输入:
    1
    2
    a b c
*/
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int num1 = sc.nextInt();
        int nums2 = sc.nextInt();
        sc.nextLine(); //   容易漏掉,不加这一句,输入完2,程序直接往下走了,下一句字符串跳过了
        String a_b_c = sc.nextLine();
        //  这样才能读取到正确的内容。
        //  不加sc.nextLine()的话,a_b_c是一个Enter字符。
    }
}

Original: https://www.cnblogs.com/afei688/p/16598078.html
Author: 阿飞的客栈
Title: ACM模式细节

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/587703/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球