- 整体框架以及常见输入输出
在面试的过程中,许多大厂的算法编程题都是要求ACM输入输出模式的,对于在力扣上刷习惯核心模式的我们会略显生疏,因此本文对相关的输入输出进行简单汇总,方便查阅。
本文参考牛客网OJ在线编程输入输出专场。
整体框架以及常见输入输出整体的程序框架需要自己导入常用的包,并且类名public Class Main和主方法名public static void main(String[] args)需要留意。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
}
}
}
ACM输出很简单:
System.out.print(); System.out.println();
ACM输入分为几种情况:
首先需要了解:
- sc.hasNext()可以用于判断接下来是否还有输入,常用于输入没有指定输入行数,需要while(sc.hasNext())一直循环直到内部break终止。
- sc.nextLine()可以读取到回车符以后的String。
其运用可以是:- int n=Integer.valueOf(sc.nextLine()),将读取到的String转换为数字。
- String[]ss=sc.nextLine().split(" "),将读取到的String根据空格分割为String数组。
- sc.nextInt()、sc.nextLong()用于读取下一个int或long类型的数字,但是「不能读取末尾的回车」。
需要特别注意的是,当碰到下面这种情况:
5 c d a bb e
我们想要读取这两行的数据,当采用下面的读法,String s读出来的是空字符,因此nextInt()仅仅读取到了5,但是没有把后面的回车换行符读进去,留在了缓存区里面。然后sc.nextLine()读取到了回车符,出现错误。
int n=sc.nextInt(); String s=sc.nextLine();
我们可以用多加一行sc.nextLine();读取掉换行符。
int n=sc.nextInt(); sc.nextLine(); String s=sc.nextLine();
或者更推荐的做法是,直接用int n=Integer.parseInt(sc.nextLine());或者int n=Integer.valueOf(sc.nextLine());连带回车符一起读取。
int n=Integer.valueOf(sc.nextLine()); sc.nextLine(); String s=sc.nextLine();



