面试 | Java算法题输入输出
一般情况下,Leetcode上刷题都是核心代码模式,只需要写出solution类就可以了,不用管输入输出。但是许多笔试面试的时候,是需要写输入输出的(ACM模式)。这里简单记录一下可能会用到的输入输出模板。
标准模板⁍
1 |
|
Scanner的next方法一览⁍
参考[1]
变量和类型 | 方法 | 描述 |
---|---|---|
String |
next() |
从此扫描仪查找并返回下一个完整令牌。 |
String |
next(String pattern) |
如果它与从指定字符串构造的模式匹配,则返回下一个标记。 |
String |
next(Pattern pattern) |
如果匹配指定的模式,则返回下一个标记。 |
BigDecimal |
nextBigDecimal() |
将输入的下一个标记扫描为BigDecimal 。 |
BigInteger |
nextBigInteger() |
将输入的下一个标记扫描为BigInteger 。 |
BigInteger |
nextBigInteger(int radix) |
将输入的下一个标记扫描为BigInteger 。 |
boolean |
nextBoolean() |
将输入的下一个标记扫描为布尔值并返回该值。 |
byte |
nextByte() |
将输入的下一个标记扫描为 byte 。 |
byte |
nextByte(int radix) |
将输入的下一个标记扫描为 byte 。 |
double |
nextDouble() |
将输入的下一个标记扫描为 double 。 |
float |
nextFloat() |
将输入的下一个标记扫描为 float 。 |
int |
nextInt() |
将输入的下一个标记扫描为 int 。 |
int |
nextInt(int radix) |
将输入的下一个标记扫描为 int 。 |
String |
nextLine() |
使此扫描器前进超过当前行并返回跳过的输入。 |
long |
nextLong() |
将输入的下一个标记扫描为 long 。 |
long |
nextLong(int radix) |
将输入的下一个标记扫描为 long 。 |
short |
nextShort() |
将输入的下一个标记扫描为 short 。 |
short |
nextShort(int radix) |
将输入的下一个标记扫描为 short 。 |
EOF⁍
采用hasNext
来判断有无下一个输入
1 |
|
Scanner的hasNext方法一览⁍
变量和类型 | 方法 | 描述 |
---|---|---|
boolean |
hasNext() |
如果此扫描器的输入中有另一个标记,则返回true。 |
boolean |
hasNext(String pattern) |
如果下一个标记与从指定字符串构造的模式匹配,则返回true。 |
boolean |
hasNext(Pattern pattern) |
如果下一个完整标记与指定模式匹配,则返回true。 |
boolean |
hasNextBigDecimal() |
如果此扫描器输入中的下一个标记可以使用 nextBigDecimal() 方法解释为 BigDecimal 则返回true。 |
boolean |
hasNextBigInteger() |
如果此扫描器输入中的下一个标记可以使用 nextBigInteger() 方法在默认基数中解释为 BigInteger ,则返回true。 |
boolean |
hasNextBigInteger(int radix) |
如果此扫描器输入中的下一个标记可以使用 nextBigInteger() 方法在指定的基数中解释为 BigInteger ,则返回true。 |
boolean |
hasNextBoolean() |
如果使用从字符串“true | false”创建的不区分大小写的模式,可以将此扫描器输入中的下一个标记解释为布尔值,则返回true。 |
boolean |
hasNextByte() |
如果使用 nextByte() 方法将此扫描器输入中的下一个标记解释为默认基数中的字节值,则返回true。 |
boolean |
hasNextByte(int radix) |
如果使用 nextByte() 方法将此扫描器输入中的下一个标记解释为指定基数中的字节值,则返回true。 |
boolean |
hasNextDouble() |
如果使用 nextDouble() 方法将此扫描仪输入中的下一个标记解释为double值,则返回true。 |
boolean |
hasNextFloat() |
如果使用 nextFloat() 方法将此扫描器输入中的下一个标记解释为浮点值,则返回true。 |
boolean |
hasNextInt() |
如果使用 nextInt() 方法将此扫描器输入中的下一个标记解释为默认基数中的int值,则返回true。 |
boolean |
hasNextInt(int radix) |
如果此扫描器输入中的下一个标记可以使用 nextInt() 方法解释为指定基数中的int值,则返回true。 |
boolean |
hasNextLine() |
如果此扫描器的输入中有另一行,则返回true。 |
boolean |
hasNextLong() |
如果使用 nextLong() 方法将此扫描器输入中的下一个标记解释为默认基数中的长值,则返回true。 |
boolean |
hasNextLong(int radix) |
如果使用 nextLong() 方法可以将此扫描器输入中的下一个标记解释为指定基数中的长值,则返回true。 |
boolean |
hasNextShort() |
如果使用 nextShort() 方法可以将此扫描器输入中的下一个标记解释为默认基数中的短值,则返回true。 |
boolean |
hasNextShort(int radix) |
如果此扫描器输入中的下一个标记可以使用 nextShort() 方法解释为指定基数中的短值,则返回true。 |
Scanner分隔符⁍
Scanner使用分隔符模式将其输入分解为标记,该分隔符模式默认匹配空格。 将得到的令牌可以然后被转换成使用各种不同类型的值next方法。
1 |
|
(可配合正则表达式使用)
以WOJ上的2. Genesis - WOJ (whu.edu.cn)为例:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 若叶!