Java 从字符串中删除某个字符,而不从字符串的开头和结尾删除所述字符(如果存在)
正如标题所说,我想从字符串中删除一个特定字符(在本例中为“e”),但如果该字母位于字符串的开头或结尾,我不想删除它Java 从字符串中删除某个字符,而不从字符串的开头和结尾删除所述字符(如果存在),java,string,character,Java,String,Character,正如标题所说,我想从字符串中删除一个特定字符(在本例中为“e”),但如果该字母位于字符串的开头或结尾,我不想删除它 import java.util.Scanner; public class RemoveE { public static void main(String[] args) { // TODO Auto-generated method stub String s; String st; Scanner in = new Scanner(Sy
import java.util.Scanner;
public class RemoveE {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s;
String st;
Scanner in = new Scanner(System.in);
System.out.print("Enter string: ");
s = in.nextLine();
st = s.replaceAll("e", "");
System.out.println(st);
}
}
一个非常简单的解决方案是使用2个布尔变量,它们告诉您在开始或结束时是否有该字符,然后将它们全部删除,如果布尔值为真,则只需将它们添加回去
boolean front = s.startsWith("e");
boolean end = s.endsWith("e");
s = s.replaceAll("e", "");
if(front)
s="e"+s;
if(end)
s=s+"e";
我希望这是您需要的另一个解决方案
st = s.length() < 3 ? s : s.charAt(0) + s.substring(1, s.length() - 1).replaceAll("e","") + s.charAt(s.length()-1);
st=s.length()<3?s:s.charAt(0)+s.substring(1,s.length()-1);
差不多,但不完全正确-如果前端和后端都正确怎么办?如果语句应该添加到st,而不是s。是的,你是对的。谢谢你的警告,现在已经修好了