fork download
  1. import java.util.*;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.FileReader;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.util.regex.Matcher;
  8. import java.util.regex.Pattern;
  9.  
  10. public class Main {
  11. public static void main(String[] args) {
  12. String in = "input.txt";
  13. String out = "output.txt";
  14. try {
  15. BufferedReader reader = new BufferedReader(new FileReader(in));
  16. BufferedWriter writer = new BufferedWriter(new FileWriter(out));
  17. String line;
  18. while ((line = reader.readLine()) != null) {
  19. if (line.startsWith("1")) Problem1(reader, writer);
  20. else if (line.startsWith("2"))Problem2(reader, writer);
  21. else if (line.startsWith("3"))Problem3(reader, writer);
  22. else if (line.startsWith("4"))Problem4(reader, writer);
  23. else if (line.startsWith("5"))Problem5(reader, writer);
  24. else if (line.startsWith("7"))Problem7(reader, writer);
  25. }
  26. reader.close();
  27. writer.close();
  28. } catch (IOException e) {
  29. e.printStackTrace();
  30. }
  31. }
  32.  
  33. private static void Problem1(BufferedReader reader, BufferedWriter writer) throws IOException {
  34. String s;
  35. Pattern pattern = Pattern.compile("\\b[A-Za-z0-9._-]+@[A-Za-z-]+\\.[A-Z|a-z]{2,}\\b");
  36. writer.write("1\n");
  37. while ((s = reader.readLine()) != null && !s.equals("end")) {
  38. Matcher matcher = pattern.matcher(s);
  39. if(matcher.matches())writer.write("valid email"+"\n");
  40. else writer.write("invalid email"+"\n");
  41.  
  42. }
  43. writer.write("x\n");
  44. }
  45.  
  46.  
  47. private static void Problem2(BufferedReader reader, BufferedWriter writer) throws IOException {
  48. String s;
  49. Pattern pattern = Pattern.compile("^(\\(\\d{3}\\)|\\d{3})[-.\\s]?\\d{3}[-.\\s]?\\d{4}$");
  50. writer.write("2\n");
  51. while ((s = reader.readLine()) != null && !s.equals("end")) {
  52. Matcher matcher = pattern.matcher(s);
  53. if(matcher.matches())writer.write("valid phone number"+ "\n");
  54. else writer.write("invalid phone number"+ "\n");
  55.  
  56. }
  57. writer.write("x\n");
  58. }
  59.  
  60.  
  61. private static void Problem3(BufferedReader reader, BufferedWriter writer) throws IOException {
  62. String s;
  63. Pattern pattern = Pattern.compile("((^\\d{4}[-/]\\d{1,2}[-/]\\d{1,2}$)|(^\\d{1,2}[-/]\\d{1,2}[-/]\\d{4}$))");
  64. writer.write("3\n");
  65. while ((s = reader.readLine()) != null && !s.equals("end")) {
  66. Matcher matcher = pattern.matcher(s);
  67. if(matcher.matches())writer.write("valid date"+ "\n");
  68. else writer.write("invalid date"+ "\n");
  69.  
  70. }
  71. writer.write("x\n");
  72. }
  73.  
  74.  
  75. private static void Problem4(BufferedReader reader, BufferedWriter writer) throws IOException {
  76. String s;
  77. Pattern pattern = Pattern.compile("((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])$");
  78. writer.write("4\n");
  79. while ((s = reader.readLine()) != null && !s.equals("end")) {
  80. Matcher matcher = pattern.matcher(s);
  81. if(matcher.matches())writer.write("valid IP address"+ "\n");
  82. else writer.write("invalid IP address"+ "\n");
  83.  
  84. }
  85. writer.write("x\n");
  86. }
  87.  
  88.  
  89. private static void Problem5(BufferedReader reader, BufferedWriter writer) throws IOException {
  90. String s;
  91. Pattern pattern = Pattern.compile("^[a-zA-Z_][a-zA-Z0-9_]*$");
  92. writer.write("5\n");
  93. while ((s = reader.readLine()) != null && !s.equals("end")) {
  94. Matcher matcher = pattern.matcher(s);
  95. if(matcher.matches())writer.write("valid C++ variable name"+ "\n");
  96. else writer.write("invalid C++ variable name"+ "\n");
  97.  
  98. }
  99. writer.write("x\n");
  100. }
  101.  
  102. private static void Problem7(BufferedReader reader, BufferedWriter writer) throws IOException {
  103. String s;
  104. Pattern pattern = Pattern.compile("((a(aa|bb|abab|baba)*b(aa|bb|abab|baba)*)|((bb|aa|abab|baba)*(ab|ba)(bb|aa|abab|baba)*)|(b(aa|bb|abab|baba)*a(aa|bb|abab|baba)*))");
  105. writer.write("7\n");
  106.  
  107. while ((s = reader.readLine()) != null && !s.equals("end")) {
  108. writer.write('*'+s+"*\n");
  109. Vector<String> vec1 = new Vector<String>();
  110. Vector<Integer> vec2 = new Vector<Integer>();
  111. Vector<Integer> vec3 = new Vector<Integer>();
  112. Matcher matcher = pattern.matcher(s);
  113. while (matcher.find()) {
  114. String matchedSubstring = matcher.group();
  115. int startIdx = matcher.start();
  116. int endIdx = matcher.end();
  117. vec1.add(matchedSubstring);
  118. vec2.add(startIdx);
  119. vec3.add(endIdx);
  120. }
  121. writer.write("number of matched substrings: "+vec1.size()+'\n');
  122. for(int i=0;i<vec1.size();i++){
  123. writer.write("matched substring: "+vec1.get(i)+'\n');
  124. writer.write("start index: "+vec2.get(i)+", "+"end index: "+vec3.get(i)+'\n');
  125. }
  126.  
  127. }
  128. writer.write("x\n");
  129. }
  130.  
  131.  
  132.  
  133. }
  134.  
Success #stdin #stdout #stderr 0.12s 52860KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
java.io.FileNotFoundException: input.txt (No such file or directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:155)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:110)
	at java.base/java.io.FileReader.<init>(FileReader.java:60)
	at Main.main(Main.java:15)