Questo post discuterà come rimuovere l'ultimo n
caratteri dalla fine di una stringa in Java.
Poiché le stringhe sono immutabili in Java, la loro lunghezza è fissa. Ciò significa che non possiamo apportare modifiche all'istanza di String. L'unica soluzione fattibile è creare un nuovo oggetto String con l'ultimo n
caratteri rimossi dalla fine di una stringa:
1. Utilizzo String.substring()
metodo
L'approccio consigliato è quello di utilizzare il substring()
metodo fornito dal String
classe. L'idea è di prendere una sottostringa dall'inizio della stringa e considerare tutti i caratteri in essa contenuti tranne l'ultimo n
personaggi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Main { public static String removeLastNchars(String str, int n) { return str.substring(0, str.length() - n); } public static void main(String[] args) { String str = "HelloWorld.java"; int n = 5; System.out.println(removeLastNchars(str, n)); // HelloWorld } } |
Dovremmo sempre assicurarci che una stringa sia delimitata correttamente, altrimenti StringIndexOutOfBoundsException
potrebbe essere lanciato. Ecco un'implementazione sicura per le eccezioni:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Main { public static String removeLastNchars(String str, int n) { if (str == null || str.length() < n) { return str; } return str.substring(0, str.length() - n); } public static void main(String[] args) { String str = "HelloWorld.java"; int n = 5; System.out.println(removeLastNchars(str, n)); // HelloWorld } } |
2. Utilizzo StringUtils.removeEnd()
metodo
Possiamo anche ottenere questo utilizzando il removeEnd
metodo dal StringUtils
classe fornita dalla libreria Apache Commons. Rimuove una sottostringa solo se si trova alla fine di una stringa di origine, altrimenti restituisce la stringa di origine. Questo è dimostrato di seguito:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import org.apache.commons.lang3.StringUtils; public class Main { public static String removeLastNchars(String str, int n) { if (str == null || str.length() < n) { return str; } String lastNChars = str.substring(str.length() - n); return StringUtils.removeEnd(str, lastNChars); } public static void main(String[] args) { String str = "Hello.java"; int n = 5; System.out.println(removeLastNchars(str, n)); // HelloWorld } } |
Si tratta di rimuovere l'ultimo n
caratteri dalla fine di una stringa in Java.