I have a final string acceptedList which contains coma separated values.
final String acceptedList = "ABC, HIJ/LMN, PQR1, XYZ";
and another dynamic string receivedList which is also a csv, comes as input to my function.
String receivedList = "ABC, PQR1";
If values in receivedList match the ones in acceptedList (in any order), it should return a success message.
Success Scenario examples:
receivedList = "ABC";
receivedList = "HIJ/LMN, ABC";
receivedList = "XYZ, PQR1, ABC";
Failure Scenario examples:
receivedList = "ABC, UNKNOWN";
receivedList = "UNKNOWN";
receivedList = "HIJ-LMN";
I have implemented the following code and it works fine. Is there a better way to implement this?
public class Driver {
final static String acceptedList = "ABC, HIJ/LMN, PQR1, XYZ";
public static void main(String[] args) {
String receivedList = "ABC, PQR1";
System.out.println(checkValues(receivedList));
}
private static String checkValues(String receivedList) {
List<String> acceptedListArray = Arrays.asList(acceptedList.split(", "));
String[] receivedArray = receivedList.split(", ");
for (String string : receivedArray) {
if (!acceptedListArray.contains(string)) {
return "Error!";
}
}
return "Success!";
}
}
Output
Success!