【问题标题】:Remove a certain character from a string, without removing said character from the beginning and end of a string, if present从字符串中删除某个字符,而不从字符串的开头和结尾删除该字符(如果存在)
【发布时间】:2017-03-27 20:15:55
【问题描述】:

正如标题所说,我想从字符串中删除特定字符(在本例中为“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);

 }

}

【问题讨论】:

    标签: java string character


    【解决方案1】:

    另一种解决方案

    st = s.length() < 3 ? s : s.charAt(0) + s.substring(1, s.length() - 1).replaceAll("e","") + s.charAt(s.length()-1);
    

    【讨论】:

      【解决方案2】:

      一个非常简单的解决方案是使用 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。
      • 是的,你是对的。谢谢提醒,已经修复了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多