Vous pouvez rechercher le (
et supprimer la chaîne restante.
public class Main {
public static void main(String[] args) {
String[] names = { "Jan vd Merwe",
"Piet Breedt (172.166.23.41)",
"Jan vd Merwe (164.23.23.51)",
"Sarel Fourie (23.12.167.244)" };
for (String name : names) {
int parIndex = name.indexLastOf('(');
if (parIndex != -1)
name = name.substring(0, parIndex-1);
System.out.println(name);
}
}
}
impressions:
Jan vd Merwe
Piet Breedt
Jan vd Merwe
Sarel Fourie
Une autre solution, basée sur les expressions régulières:
String[] names = { "Jan vd Merwe",
"Piet Breedt (172.166.23.41)",
"Jan vd Merwe (164.23.23.51)",
"Sarel Fourie (23.12.167.244)" };
String ipExp = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
Pattern pattern = Pattern.compile("(.*?)\\s*(\\(" + ipExp + "\\))?");
for (String nameIp : names) {
Matcher m = pattern.matcher(nameIp);
if (m.matches()) {
String name = m.group(1);
String ip = m.group(2) == null ? "n/a" : m.group(2);
System.out.printf("Name: %s, Ip: %s%n", name, ip);
}
}
Imprime
Name: Jan vd Merwe, Ip: n/a
Name: Piet Breedt, Ip: (172.166.23.41)
Name: Jan vd Merwe, Ip: (164.23.23.51)
Name: Sarel Fourie, Ip: (23.12.167.244)
Aimez-vous * extraire * l'ip? (Ou enlevez-le et extrayez le nom) – aioobe
Voulez-vous l'enlever 'dans 'le fichier? – helpermethod