文字列から最後の1文字を削除したいのですが。私はこのようにしてみました。
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を取得し、最後の文字を何もないものに置き換える(削除する)のですが、プログラムを実行するたびに、最後の文字と同じ中間の文字が削除されてしまいます。
例えば、単語は "admirer"; メソッドを実行すると、 "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;
}
1本のライナーではダメなのか?
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);
}
}