import java.io.File;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class MyData { // please pick a better name
int abc;
int temp;
int tryNumber; // try is a keyword
int sys;
public MyData
(int abc,
int temp,
int tryNumber,
String message,
int sys
) { this.abc = abc;
this.temp = temp;
this.tryNumber = tryNumber;
this.message = message;
this.sys = sys;
}
@Override
"MyData [abc=%s, temp=%s, tryNumber=%s, message=%s, sys=%s]", abc,
temp, tryNumber, message, sys);
}
private static Pattern p =
Pattern.compile("ABC=([^ ]+) Temp=([^ ]+) Try=([^ ]+) Message=\"([^\"]+)\" SYS=([^ ]+)");
private static MyData makeData
(String input
) { int abc = 0, temp = 0, tryNumber = 0, sys = 0;
Matcher m = p.matcher(input);
if(!m.find()) return null;
abc
= Integer.
parseInt(m.
group(1)); temp
= Integer.
parseInt(m.
group(2)); tryNumber
= Integer.
parseInt(m.
group(3)); message = m.group(4);
sys
= Integer.
parseInt(m.
group(5));
return new MyData(abc, temp, tryNumber, message, sys);
}
String foo
= "ABC=-1 Temp=5 Try=40 Message=\"some more and different text\" SYS=6"; MyData data = makeData(foo);
}
}
aW1wb3J0IGphdmEuaW8uRmlsZTsKaW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKCmNsYXNzIE15RGF0YSB7IC8vIHBsZWFzZSBwaWNrIGEgYmV0dGVyIG5hbWUKICBpbnQgYWJjOwogIGludCB0ZW1wOwogIGludCB0cnlOdW1iZXI7IC8vIHRyeSBpcyBhIGtleXdvcmQKICBTdHJpbmcgbWVzc2FnZTsKICBpbnQgc3lzOwoKICBwdWJsaWMgTXlEYXRhKGludCBhYmMsIGludCB0ZW1wLCBpbnQgdHJ5TnVtYmVyLCBTdHJpbmcgbWVzc2FnZSwgaW50IHN5cykgewogICAgdGhpcy5hYmMgPSBhYmM7CiAgICB0aGlzLnRlbXAgPSB0ZW1wOwogICAgdGhpcy50cnlOdW1iZXIgPSB0cnlOdW1iZXI7CiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlOwogICAgdGhpcy5zeXMgPSBzeXM7CiAgfQoKICBAT3ZlcnJpZGUKICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewogICAgcmV0dXJuIFN0cmluZy5mb3JtYXQoCiAgICAgICAgIk15RGF0YSBbYWJjPSVzLCB0ZW1wPSVzLCB0cnlOdW1iZXI9JXMsIG1lc3NhZ2U9JXMsIHN5cz0lc10iLCBhYmMsCiAgICAgICAgdGVtcCwgdHJ5TnVtYmVyLCBtZXNzYWdlLCBzeXMpOwogIH0KCiAgcHJpdmF0ZSBzdGF0aWMgUGF0dGVybiBwID0KICAgICAgUGF0dGVybi5jb21waWxlKCJBQkM9KFteIF0rKSBUZW1wPShbXiBdKykgVHJ5PShbXiBdKykgTWVzc2FnZT1cIihbXlwiXSspXCIgU1lTPShbXiBdKykiKTsKCiAgcHJpdmF0ZSBzdGF0aWMgTXlEYXRhIG1ha2VEYXRhKFN0cmluZyBpbnB1dCkgewogICAgICBpbnQgYWJjID0gMCwgdGVtcCA9IDAsIHRyeU51bWJlciA9IDAsIHN5cyA9IDA7CiAgICAgIFN0cmluZyBtZXNzYWdlID0gIiI7CiAgICAgICAKICAgICAgTWF0Y2hlciBtID0gcC5tYXRjaGVyKGlucHV0KTsKICAgICAgaWYoIW0uZmluZCgpKSByZXR1cm4gbnVsbDsKICAgICAgYWJjID0gSW50ZWdlci5wYXJzZUludChtLmdyb3VwKDEpKTsKICAgICAgdGVtcCA9IEludGVnZXIucGFyc2VJbnQobS5ncm91cCgyKSk7CiAgICAgIHRyeU51bWJlciA9IEludGVnZXIucGFyc2VJbnQobS5ncm91cCgzKSk7CiAgICAgIG1lc3NhZ2UgPSBtLmdyb3VwKDQpOwogICAgICBzeXMgPSBJbnRlZ2VyLnBhcnNlSW50KG0uZ3JvdXAoNSkpOwoKICAgICAgcmV0dXJuIG5ldyBNeURhdGEoYWJjLCB0ZW1wLCB0cnlOdW1iZXIsIG1lc3NhZ2UsIHN5cyk7CiAgfQoKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbiB7CiAgICBTdHJpbmcgZm9vID0gIkFCQz0tMSBUZW1wPTUgVHJ5PTQwIE1lc3NhZ2U9XCJzb21lIG1vcmUgYW5kIGRpZmZlcmVudCB0ZXh0XCIgU1lTPTYiOwogICAgTXlEYXRhIGRhdGEgPSBtYWtlRGF0YShmb28pOwogICAgU3lzdGVtLm91dC5wcmludGxuKGRhdGEpOwogIH0KfQ==