parent
commit
0bf17202c2

+ 0
- 0
The quick browner fox Vedi File


+ 0
- 0
The quick brownest fox Vedi File


+ 21
- 2
src/main/java/rocks/zipcode/AlphaCharDocument.java Vedi File

@@ -1,6 +1,8 @@
1 1
 package rocks.zipcode;
2 2
 
3
-import java.io.IOException;
3
+import java.io.*;
4
+import java.util.regex.Matcher;
5
+import java.util.regex.Pattern;
4 6
 
5 7
 /**
6 8
  * @author leon on 16/11/2018.
@@ -12,9 +14,26 @@ public class AlphaCharDocument extends Document {
12 14
 
13 15
     @Override
14 16
     public void write(String contentToBeWritten) {
17
+
18
+        if (this.isAlpha(contentToBeWritten)==true){
19
+           super.write(contentToBeWritten);
20
+
21
+
22
+        }else{
23
+            throw  new  IllegalArgumentException();
24
+
25
+        }
26
+
27
+
15 28
     }
16 29
 
17 30
     private Boolean isAlpha(String s) {
18
-        return null;
31
+        Pattern pattern = Pattern.compile("[a-z]", Pattern.CASE_INSENSITIVE);
32
+        Matcher matcher = pattern.matcher(s);
33
+        boolean b = matcher.find();
34
+        return b;
35
+
36
+
37
+
19 38
     }
20 39
 }

+ 123
- 5
src/main/java/rocks/zipcode/Document.java Vedi File

@@ -1,9 +1,17 @@
1 1
 package rocks.zipcode;
2 2
 
3 3
 import java.io.*;
4
+import java.nio.charset.Charset;
5
+import java.nio.charset.StandardCharsets;
4 6
 import java.nio.file.Files;
7
+import java.nio.file.Path;
8
+import java.nio.file.Paths;
9
+import java.util.ArrayList;
5 10
 import java.util.Arrays;
6 11
 import java.util.List;
12
+import java.util.Scanner;
13
+import java.util.regex.Matcher;
14
+import java.util.regex.Pattern;
7 15
 
8 16
 /**
9 17
  * @author leon on 16/11/2018.
@@ -24,41 +32,151 @@ public class Document implements DocumentInterface {
24 32
 
25 33
     @Override
26 34
     public void write(String contentToBeWritten) {
35
+        try {
36
+            fileWriter.write(contentToBeWritten);
37
+            fileWriter.flush();
38
+        } catch (IOException e) {
39
+            e.printStackTrace();
40
+        }
41
+
42
+
27 43
     }
28 44
 
29 45
     @Override
30 46
     public void write(Integer lineNumber, String valueToBeWritten) {
47
+        List <String> lines = null;
48
+        try {
49
+            lines = Files.readAllLines(file.toPath());
50
+            lines.set(lineNumber,valueToBeWritten);
51
+            Files.write(file.toPath(), lines);
52
+        } catch (IOException e) {
53
+            e.printStackTrace();
54
+        }
55
+
31 56
     }
32 57
 
33 58
     @Override
34 59
     public String read(Integer lineNumber) {
35
-        return null;
60
+        String lineToBeRead= null;
61
+        try {
62
+            lineToBeRead = Files
63
+                    .readAllLines(Paths
64
+                            .get("target/file.txt"))
65
+                    .get(lineNumber);
66
+
67
+        } catch (IOException e) {
68
+            e.printStackTrace();
69
+        }
70
+        return lineToBeRead;
36 71
     }
37 72
 
38 73
     @Override
39 74
     public String read() {
40
-        return null;
75
+
76
+        StringBuilder builder = new StringBuilder();
77
+        try (BufferedReader br = new BufferedReader(new FileReader(file)))
78
+        {
79
+
80
+            String sCurrentLine;
81
+            while ((sCurrentLine = br.readLine()) != null)
82
+            {
83
+                builder.append(sCurrentLine).append("\n");
84
+            }
85
+        }
86
+        catch (IOException e)
87
+        {
88
+            e.printStackTrace();
89
+        }
90
+        return builder.toString().trim();
91
+
92
+
93
+
94
+//        try{
95
+//            return new String (Files.readAllBytes(Paths.get(file.getName())));
96
+//        } catch (IOException e) {
97
+//            e.printStackTrace();
98
+//            return null;
99
+//        }
100
+
41 101
     }
42 102
 
43 103
     @Override
44 104
     public void replaceAll(String stringToReplace, String replacementString) {
105
+        Path path = Paths.get("target/file.txt");
106
+        Charset charset = StandardCharsets.UTF_8;
107
+
108
+        String content = null;
109
+        try {
110
+            content = new String(Files.readAllBytes(path), charset);
111
+        } catch (IOException e) {
112
+            e.printStackTrace();
113
+        }
114
+        content = content.replaceAll(stringToReplace, replacementString);
115
+        try {
116
+            Files.write(path, content.getBytes(charset));
117
+        } catch (IOException e) {
118
+            e.printStackTrace();
119
+        }
120
+
45 121
     }
46 122
 
47 123
     @Override
48 124
     public void overWrite(String content) {
125
+        try {
126
+            Writer fileWriter = new FileWriter("target/file.txt", false);
127
+            write(content);
128
+        } catch (IOException e) {
129
+            e.printStackTrace();
130
+        }
131
+
49 132
     }
50 133
 
51 134
     public List<String> toList() {
52
-        return null;
135
+        Scanner s = null;
136
+        try {
137
+            s = new Scanner(new File("target/file.txt"));
138
+        } catch (FileNotFoundException e) {
139
+            e.printStackTrace();
140
+        }
141
+        ArrayList<String> list = new ArrayList<>();
142
+        while (s.hasNext()){
143
+            list.add(s.next());
144
+        }
145
+        s.close();
146
+
147
+
148
+
149
+        return list;
53 150
     }
54 151
 
55 152
     @Override
56 153
     public File getFile() {
57
-        return null;
154
+         File f = new File("target/file.txt");
155
+         return  file;
156
+
58 157
     }
59 158
 
60 159
     @Override
61 160
     public String toString() {
62
-        return null;
161
+         String fileName = "target/file.txt";
162
+        String content = "";
163
+
164
+        try
165
+        {
166
+            content = new String ( Files.readAllBytes( Paths.get("target/file.txt") ) );
167
+
168
+        }
169
+        catch (IOException e)
170
+        {
171
+            e.printStackTrace();
172
+        }
173
+        StringBuilder builder = new StringBuilder(fileName)
174
+                .append('{')
175
+                .append(content)
176
+                .append('}');
177
+
178
+
179
+        return builder.toString();
180
+
63 181
     }
64 182
 }

+ 17
- 1
src/main/java/rocks/zipcode/NumericCharDocument.java Vedi File

@@ -1,6 +1,8 @@
1 1
 package rocks.zipcode;
2 2
 
3 3
 import java.io.IOException;
4
+import java.util.regex.Matcher;
5
+import java.util.regex.Pattern;
4 6
 
5 7
 /**
6 8
  * @author leon on 16/11/2018.
@@ -12,9 +14,23 @@ public class NumericCharDocument extends Document {
12 14
 
13 15
     @Override
14 16
     public void write(String contentToBeWritten) {
17
+        if (this.isNumeric(contentToBeWritten)){
18
+            super.write(contentToBeWritten);
19
+
20
+
21
+        }else{
22
+            throw  new  IllegalArgumentException();
23
+
24
+        }
25
+
15 26
     }
16 27
 
17 28
     private Boolean isNumeric(String s) {
18
-        return null;
29
+
30
+        Pattern pattern = Pattern.compile("[0-9]");
31
+        Matcher matcher =pattern.matcher(s);
32
+        boolean b = matcher.find();
33
+        return b;
34
+
19 35
     }
20 36
 }

+ 16
- 1
src/main/java/rocks/zipcode/SpecialCharDocument.java Vedi File

@@ -1,6 +1,10 @@
1 1
 package rocks.zipcode;
2 2
 
3
+import java.io.BufferedWriter;
4
+import java.io.FileWriter;
3 5
 import java.io.IOException;
6
+import java.util.regex.Matcher;
7
+import java.util.regex.Pattern;
4 8
 
5 9
 /**
6 10
  * @author leon on 18/11/2018.
@@ -12,9 +16,20 @@ public class SpecialCharDocument extends Document {
12 16
 
13 17
     @Override
14 18
     public void write(String contentToBeWritten) {
19
+        if (this.isSpecialCharacters(contentToBeWritten)){
20
+            super.write(contentToBeWritten);
21
+        }else{
22
+            throw new IllegalArgumentException();
23
+        }
24
+
25
+
15 26
     }
16 27
 
17 28
     private Boolean isSpecialCharacters(String s) {
18
-        return null;
29
+        Pattern pattern = Pattern.compile("[$&+,:;=?@#|'<>.^*()%!-]");
30
+        Matcher matcher =pattern.matcher(s);
31
+        boolean b = matcher.find();
32
+        return b;
33
+
19 34
     }
20 35
 }