fork download
  1. import java.io.File;
  2. import java.util.Scanner;
  3. import java.util.regex.Matcher;
  4. import java.util.regex.Pattern;
  5.  
  6. class MyData { // please pick a better name
  7. int abc;
  8. int temp;
  9. int tryNumber; // try is a keyword
  10. String message;
  11. int sys;
  12.  
  13. public MyData(int abc, int temp, int tryNumber, String message, int sys) {
  14. this.abc = abc;
  15. this.temp = temp;
  16. this.tryNumber = tryNumber;
  17. this.message = message;
  18. this.sys = sys;
  19. }
  20.  
  21. @Override
  22. public String toString() {
  23. return String.format(
  24. "MyData [abc=%s, temp=%s, tryNumber=%s, message=%s, sys=%s]", abc,
  25. temp, tryNumber, message, sys);
  26. }
  27.  
  28. private static Pattern p =
  29. Pattern.compile("ABC=([^ ]+) Temp=([^ ]+) Try=([^ ]+) Message=\"([^\"]+)\" SYS=([^ ]+)");
  30.  
  31. private static MyData makeData(String input) {
  32. int abc = 0, temp = 0, tryNumber = 0, sys = 0;
  33. String message = "";
  34.  
  35. Matcher m = p.matcher(input);
  36. if(!m.find()) return null;
  37. abc = Integer.parseInt(m.group(1));
  38. temp = Integer.parseInt(m.group(2));
  39. tryNumber = Integer.parseInt(m.group(3));
  40. message = m.group(4);
  41. sys = Integer.parseInt(m.group(5));
  42.  
  43. return new MyData(abc, temp, tryNumber, message, sys);
  44. }
  45.  
  46. public static void main(String[] args) throws java.lang.Exception {
  47. String foo = "ABC=-1 Temp=5 Try=40 Message=\"some more and different text\" SYS=6";
  48. MyData data = makeData(foo);
  49. System.out.println(data);
  50. }
  51. }
Success #stdin #stdout 0.1s 320320KB
stdin
Standard input is empty
stdout
MyData [abc=-1, temp=5, tryNumber=40, message=some more and different text, sys=6]