String name = "Chris Mike Soloman Miller Cooper"; I want to split this string to firstname=(first word), lastname=(last word), middlename=(remaining all words). how can I do it without using for loop. Any java 8 feature to implement here ? Desired ans: firstname = Chris, lastname = Cooper, middlename = Mike Soloman Miller I have tried this but I don't want to use for loop.
String name = "Chris Mike Soloman Miller Cooper";
String [] fullName = name.split(" ");
String firstName = fullName[0];
String lastName = fullName[fullName.length-1];
StringBuilder middleName = new StringBuilder();
for(int i=1; i<fullName.length-1; i++) {
middleName.append(fullName[i]);
middleName.append(" ");
}
String middleName = String.valueOf(middleName.toString().trim());
As Chaosfire has stated, it's possible to use String.indexOf()
and String.lastIndexOf()
to search for where the first and last spaces are. After that, it's just a matter of using those indexes to break the original string into substrings.
public class Main {
public static void main(String[] args) {
String name = "Enrico \"The Goat\" Fermi";
int firstBreak = name.indexOf(" ");
int lastBreak = name.lastIndexOf(" ");
System.out.println(name.substring(0, firstBreak)); // first name
System.out.println(name.substring(firstBreak + 1, lastBreak)); // middle name
System.out.println(name.substring(lastBreak + 1)); // last name
}
}