From ef8739b5bf6a38a6905e69459ee50410deb0e1e8 Mon Sep 17 00:00:00 2001 From: dong031001 <30747164+dong031001@users.noreply.github.com> Date: Fri, 2 Sep 2022 16:53:55 +0800 Subject: [PATCH 1/2] Support custom delim for tokenizer --- Kattio.java | 100 +++++++++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 44 deletions(-) diff --git a/Kattio.java b/Kattio.java index ee2fd65..8e8e65a 100644 --- a/Kattio.java +++ b/Kattio.java @@ -25,6 +25,7 @@ * a good idea to use hasMoreTokens() to check for end-of-file. * * @author: Kattis + * @author: Shear */ import java.util.StringTokenizer; @@ -37,58 +38,69 @@ import java.io.OutputStream; class Kattio extends PrintWriter { - public Kattio(InputStream i) { - super(new BufferedOutputStream(System.out)); - r = new BufferedReader(new InputStreamReader(i)); - } - public Kattio(InputStream i, OutputStream o) { - super(new BufferedOutputStream(o)); - r = new BufferedReader(new InputStreamReader(i)); - } + public Kattio(InputStream i) { + super(new BufferedOutputStream(System.out)); + r = new BufferedReader(new InputStreamReader(i)); + } - public boolean hasMoreTokens() { - return peekToken() != null; - } + public Kattio(InputStream i, String delim){ + super(new BufferedOutputStream(System.out)); + r = new BufferedReader(new InputStreamReader(i)); + this.delim = delim; + } - public int getInt() { - return Integer.parseInt(nextToken()); - } + public Kattio(InputStream i, OutputStream o) { + super(new BufferedOutputStream(o)); + r = new BufferedReader(new InputStreamReader(i)); + } - public double getDouble() { - return Double.parseDouble(nextToken()); - } + public boolean hasMoreTokens() { + return peekToken() != null; + } - public long getLong() { - return Long.parseLong(nextToken()); - } + public int getInt() { + return Integer.parseInt(nextToken()); + } - public String getWord() { - return nextToken(); - } + public double getDouble() { + return Double.parseDouble(nextToken()); + } + public long getLong() { + return Long.parseLong(nextToken()); + } + public String getWord() { + return nextToken(); + } - private BufferedReader r; - private String line; - private StringTokenizer st; - private String token; + private BufferedReader r; + private String line; + private StringTokenizer st; + private String token; + private String delim; - private String peekToken() { - if (token == null) - try { - while (st == null || !st.hasMoreTokens()) { - line = r.readLine(); - if (line == null) return null; - st = new StringTokenizer(line); - } - token = st.nextToken(); - } catch (IOException e) { } - return token; - } + private String peekToken() { + if (token == null) + try { + while (st == null || !st.hasMoreTokens()) { + line = r.readLine(); + if (line == null) + return null; + if (delim == null) + st = new StringTokenizer(line); + else + st = new StringTokenizer(line, delim); + } + token = st.nextToken(); + } catch (IOException e) { + } + return token; + } - private String nextToken() { - String ans = peekToken(); - token = null; - return ans; - } + private String nextToken() { + String ans = peekToken(); + token = null; + return ans; + } } From 47fd8ac7f2a77d678626831d786a9b045427119a Mon Sep 17 00:00:00 2001 From: dong031001 <30747164+dong031001@users.noreply.github.com> Date: Fri, 2 Sep 2022 16:56:26 +0800 Subject: [PATCH 2/2] Update Kattio.java --- Kattio.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Kattio.java b/Kattio.java index 8e8e65a..2804544 100644 --- a/Kattio.java +++ b/Kattio.java @@ -25,6 +25,8 @@ * a good idea to use hasMoreTokens() to check for end-of-file. * * @author: Kattis + * + * Modified based on MIT License * @author: Shear */