Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字符串中删除某个字符,而不从字符串的开头和结尾删除所述字符(如果存在)_Java_String_Character - Fatal编程技术网

Java 从字符串中删除某个字符,而不从字符串的开头和结尾删除所述字符(如果存在)

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

正如标题所说,我想从字符串中删除一个特定字符(在本例中为“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(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。是的,你是对的。谢谢你的警告,现在已经修好了