Θέλω να αφαιρέσω τον τελευταίο χαρακτήρα από μια συμβολοσειρά. Προσπάθησα να το κάνω αυτό:
public String method(String str) {
if (str.charAt(str.length()-1)=='x'){
str = str.replace(str.substring(str.length()-1), "");
return str;
} else{
return str;
}
}
Να πάρω το μήκος της συμβολοσειράς - 1 και να αντικαταστήσω το τελευταίο γράμμα με τίποτα (να το διαγράψω), αλλά κάθε φορά που τρέχω το πρόγραμμα, διαγράφει τα μεσαία γράμματα που είναι ίδια με το τελευταίο γράμμα.
Για παράδειγμα, η λέξη είναι "θαυμαστής"- αφού τρέξω τη μέθοδο, παίρνω "admie."- Θέλω να επιστρέψει τη λέξη admire.
Το replace
θα αντικαταστήσει όλες τις περιπτώσεις ενός γράμματος. Το μόνο που χρειάζεται να κάνετε είναι να χρησιμοποιήσετε substring()
:
public String method(String str) {
if (str != null && str.length() > 0 && str.charAt(str.length() - 1) == 'x') {
str = str.substring(0, str.length() - 1);
}
return str;
}
Γιατί όχι μόνο μια γραμμή;
private static String removeLastChar(String str) {
return str.substring(0, str.length() - 1);
}
Πλήρης κωδικός
import java.util.*;
import java.lang.*;
public class Main {
public static void main (String[] args) throws java.lang.Exception {
String s1 = "Remove Last CharacterY";
String s2 = "Remove Last Character2";
System.out.println("After removing s1==" + removeLastChar(s1) + "==");
System.out.println("After removing s2==" + removeLastChar(s2) + "==");
}
private static String removeLastChar(String str) {
return str.substring(0, str.length() - 1);
}
}