Advertisement
Danielto2000

Untitled

Nov 10th, 2018
557
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.60 KB | None | 0 0
  1.  static class FileBufferedReader implements AutoCloseable {
  2.         private char currentSymbol;
  3.         private final InputStreamReader in;
  4.         private static final byte EOF = -1;
  5.         private static final char NEW_LINE = '\n';
  6.         private static final char APOSTROPHE = '\'';
  7.  
  8.         FileBufferedReader(String fileName) throws IOException {
  9.             in = new InputStreamReader(new FileInputStream(fileName), "utf-8");
  10.         }
  11.  
  12.         private void readNextChar() throws IOException {
  13.             currentSymbol = (char) in.read();
  14.         }
  15.  
  16.         boolean hasNext() throws IOException {
  17.             readNextChar();
  18.             return (byte) currentSymbol != EOF;
  19.         }
  20.  
  21.         boolean thisLine() {
  22.             return currentSymbol != NEW_LINE
  23.                     && (byte) currentSymbol != EOF;
  24.         }
  25.  
  26.         String nextWord() throws IOException {
  27.             StringBuilder currentWord = new StringBuilder();
  28.             while (!isPunctuation(currentSymbol)) {
  29.                 readNextChar();
  30.                 if (!thisLine()) {
  31.                     break;
  32.                 }
  33.             }
  34.             while (isPunctuation(currentSymbol)) {
  35.                 currentWord.append(currentSymbol);
  36.                 readNextChar();
  37.             }
  38.             return currentWord.toString().toLowerCase();
  39.         }
  40.  
  41.         private boolean isPunctuation(char symbol) {
  42.             return Character.isLetter(symbol) || Character.getType(symbol) == Character.DASH_PUNCTUATION
  43.                     || symbol == APOSTROPHE;
  44.         }
  45.  
  46.         public void close() {
  47.         }
  48.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement