दिए गए उपयोगकर्ता ऑब्जेक्ट में जावा में नीचे की तरह लाइनों को पार्स करने का सबसे अच्छा तरीका क्या है?

"Adam Xin" "Canada/British Columbia/Vancouver" 2.110


   public class User {

    private String firstName;
    private String lastName;
    private String country;
    private String province;
    private String city;
    private Double rValue;
}
-1
BrownTownCoder 15 अप्रैल 2018, 22:37

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप उपयोगकर्ता वर्ग में विधियाँ जोड़ सकते हैं, तो नीचे की तरह एक स्थिर विधि पार्स जोड़ें।

सार्वजनिक स्थैतिक उपयोगकर्ता पार्स (स्ट्रिंग टेक्स्ट) {

//Parsing Logic

}

यदि उपयोगकर्ता एक पुस्तकालय वर्ग है और आप इसे बदल नहीं सकते हैं, तो आप एक उपयोगिता वर्ग बना सकते हैं और इसमें उपरोक्त विधि जोड़ सकते हैं।

नीचे पार्स विधि का कार्यान्वयन है।

public static User parse(String text) {
    List<String> matchList = new ArrayList<String>();
    Pattern regex = Pattern.compile("[^\\s\"']+|\"([^\"]*)\"|'([^']*)'");
    Matcher regexMatcher = regex.matcher(text);
    while (regexMatcher.find()) {
        if (regexMatcher.group(1) != null) {
            matchList.add(regexMatcher.group(1));
        } else if (regexMatcher.group(2) != null) {
            matchList.add(regexMatcher.group(2));
        } else {
            matchList.add(regexMatcher.group());
        }
    }
    System.out.println(matchList);
    String[] name = matchList.get(0).split(" ");
    String[] address = matchList.get(1).split("/");
    return new User(name[0], name[1], address[0], address[1], address[2], Double.parseDouble(matchList.get(2)));
}

अब जब भी आप किसी स्ट्रिंग को पार्स करना चाहते हैं और उपयोगकर्ता वर्ग बनाना चाहते हैं, तो उपरोक्त परिभाषित विधि को कॉल करें।

  • चीयर्स !!
1
hosur narahari 15 अप्रैल 2018, 23:28