update
This commit is contained in:
58
java/reverse/FastScanner.java
Normal file
58
java/reverse/FastScanner.java
Normal file
@@ -0,0 +1,58 @@
|
||||
package reverse;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
|
||||
/**
|
||||
* @author Nikita Doschennikov (me@fymio.us)
|
||||
*/
|
||||
public class FastScanner {
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
|
||||
String line = null;
|
||||
int pos = 0;
|
||||
|
||||
boolean hasNextLine() throws IOException {
|
||||
if (line != null && pos < line.length()) return true;
|
||||
line = br.readLine();
|
||||
pos = 0;
|
||||
return line != null;
|
||||
}
|
||||
|
||||
boolean hasNextInt() {
|
||||
if (line == null) return false;
|
||||
while (pos < line.length() && (Character.isWhitespace(line.charAt(pos)) ||
|
||||
Character.getType(line.charAt(pos)) == Character.START_PUNCTUATION ||
|
||||
Character.getType(line.charAt(pos)) == Character.END_PUNCTUATION)) {
|
||||
pos++;
|
||||
}
|
||||
return pos < line.length() && (Character.isDigit(line.charAt(pos)) || line.charAt(pos) == '-');
|
||||
}
|
||||
|
||||
int nextInt() {
|
||||
while (pos < line.length() && (Character.isWhitespace(line.charAt(pos)) ||
|
||||
Character.getType(line.charAt(pos)) == Character.START_PUNCTUATION ||
|
||||
Character.getType(line.charAt(pos)) == Character.END_PUNCTUATION)) {
|
||||
pos++;
|
||||
}
|
||||
|
||||
int start = pos;
|
||||
boolean negative = line.charAt(pos) == '-';
|
||||
if (negative) pos++;
|
||||
|
||||
while (pos < line.length() && Character.isDigit(line.charAt(pos))) {
|
||||
pos++;
|
||||
}
|
||||
|
||||
int result = 0;
|
||||
for (int i = negative ? start + 1 : start; i < pos; i++) {
|
||||
result = result * 10 + (line.charAt(i) - '0');
|
||||
}
|
||||
return negative ? -result : result;
|
||||
}
|
||||
|
||||
void nextLine() {
|
||||
pos = line.length();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user