01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
package algs35;
import stdlib.*;
/* ***********************************************************************
* Compilation: javac LookupCSV.java
* Execution: java LookupCSV file.csv keyField valField
* Dependencies: ST.java In.java StdIn.java StdOut.java
* Data files: http://algs4.cs.princeton.edu/35applications/DJIA.csv
* http://algs4.cs.princeton.edu/35applications/UPC.csv
* http://algs4.cs.princeton.edu/35applications/amino.csv
* http://algs4.cs.princeton.edu/35applications/elements.csv
* http://algs4.cs.princeton.edu/35applications/ip.csv
* http://algs4.cs.princeton.edu/35applications/morse.csv
*
* Reads in a set of key-value pairs from a two-column CSV file
* specified on the command line; then, reads in keys from standard
* input and prints out corresponding values.
*
* % java LookupCSV amino.csv 0 3 % java LookupCSV ip.csv 0 1
* TTA www.google.com
* Leucine 216.239.41.99
* ABC
* Not found % java LookupCSV ip.csv 1 0
* TCT 216.239.41.99
* Serine www.google.com
*
* % java LookupCSV amino.csv 3 0 % java LookupCSV DJIA.csv 0 1
* Glycine 29-Oct-29
* GGG 252.38
* 20-Oct-87
* 1738.74
*
*
*************************************************************************/
public class LookupCSV {
public static void main(String[] args) {
args = new String[] { "data/ip.csv", "0", "1" }; StdIn.fromString ("www.google.com");
// args = new String[] { "data/ip.csv", "1", "0" }; StdIn.fromString ("216.239.41.99");
// args = new String[] { "data/amino.csv", "0", "3" }; StdIn.fromString ("TTA");
int keyField = Integer.parseInt(args[1]);
int valField = Integer.parseInt(args[2]);
// symbol table
ST<String, String> st = new ST<>();
// read in the data from csv file
In in = new In(args[0]);
while (in.hasNextLine()) {
String line = in.readLine();
String[] tokens = line.split(",");
String key = tokens[keyField];
String val = tokens[valField];
st.put(key, val);
}
while (!StdIn.isEmpty()) {
String s = StdIn.readString();
if (st.contains(s)) StdOut.println(st.get(s));
else StdOut.println("Not found");
}
}
}
|