Я бы сделал это с помощью регулярного выражения:
String comment= "service-maintenance,I have been contacted about an airbag recall. When can I book?Make : Nissan\nModel : X-TRAIL\nSeries : T324\nDescription : X-TRAIL Desc\nBodyType : 4X4\n";
String pattern = "Make : (.*)\nModel : (.*)\nSeries : (.*)\nDescription : (.*)\nBodyType : (.*)\n";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(comment);
if (m.find( )) {
//System.out.println(m.group(0));
System.out.println("Make: "+m.group(1));
System.out.println("Model: "+m.group(2));
System.out.println("Series: "+m.group(3));
System.out.println("Description: "+m.group(4));
System.out.println("BodyType: "+m.group(5));
}else {
System.out.println("NO MATCH");
}
Вывод:
Make: Nissan
Model: X-TRAIL
Series: T324
Description: X-TRAIL Desc
BodyType: 4X4
Если вы раскомментируете первый сисо, вы получите такой вывод:
Make : Nissan
Model : X-TRAIL
Series : T324
Description : X-TRAIL Desc
BodyType : 4X4
РЕДАКТИРОВАТЬ: Дополнительное решение для анализа необязательных параметров
String comment= "service-maintenance,I have been contacted about an airbag recall. When can I book?Make : Nissan\nModel : X-TRAIL\nSeries : T324\nDescription : X-TRAIL Desc\nBodyType : 4X4\n";
String pattern = "(Make|Model|Series|Description|BodyType) : (.*)\n";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(comment);
while (m.find()) {
//System.out.println(m.group(0));
System.out.println(m.group(1) + "=" + m.group(2));
}
Теперь вывод:
Make=Nissan
Model=X-TRAIL
Series=T324
Description=X-TRAIL Desc
BodyType=4X4
И такой же вывод будет, если, если раскомментировать syso строку. И, конечно, вы можете удалить некоторые параметры, и все должно работать как положено. Если все параметры удалены, вывод будет пустым.