2012-02-15 23 views

risposta

54

Si potrebbe provare un'espressione regolare:

names = names.replaceAll(",$", ""); 

O una semplice stringa:

if (names.endsWith(",")) { 
    names = names.substring(0, names.length() - 1); 
} 
+0

Puoi spiegare come funziona la cosa regEx qui? –

+1

L'uso di $ in espressioni regolari non rimuove le virgole ma funziona semplicemente usando "," –

+0

@amit Tumkur $ indica la fine della stringa in modo da rimuovere la virgola solo alla fine. – teksan

14
if (names.endsWith(",")) { 
    names = names.substring(0, names.length()-1); 
} 
2
int last = names.length() - 1; 
if (last > 0 && names.charAt(last) == ',') { 
    names = names.substring(0, last); 
} 
0
System.out.println(names.replaceAll(",([^,]*)$", "$1")); 
1

Se non si vuole reinventare la ruota:

StringUtils.stripEnd(names, ","); 
+0

Questo non funzionerà se si desidera solo 1 virgola e ce ne sono di più, ad es. 'S, th ,,' – pstobiecki

-1

È può fare qualcosa di simile usando 'Java 8'

private static void appendNamesWithComma() { 
    List<String> namesList = Arrays.asList("test1", "tester2", "testers3", "t4"); 
    System.out.println(namesList.stream() 
           .collect(Collectors.joining(", "))); 

} 
Problemi correlati