【问题标题】:How to remove middle character in a string in java?如何在java中删除字符串中的中间字符?
【发布时间】:2017-10-23 06:10:46
【问题描述】:

我正在尝试打印没有中间字符的字符串,但我没有得到所需的输出。

public class StringIndexEliminator {
    public static void main(String[] args) {
        String str = "CARS";
        int l = str.length();
        int s = (l+1)/2;
        System.out.println(l);
        StringBuffer sb = new StringBuffer(str);
        System.out.println(sb.deleteCharAt(s).toString());
    }

}

【问题讨论】:

  • 偶数个单词的“中间字符”是什么?
  • 你需要检查长度是否是偶数,如果不是,则什么都不做
  • 来吧伙计们,代码中的注释解释了它
  • @Andremoniy 因为没有中间字符,即使我应该按原样打印字符串。

标签: java string character-replacement


【解决方案1】:

不需要使用 stringBuffer(没有竞争条件)使用 StringBuilder 然后删除 length/2

StringBuilder sb = new StringBuilder(str);
System.out.println(sb.deleteCharAt(str.length() / 2));

【讨论】:

  • 如果我使用它,它会给出奇数长度所需的输出,但如果它有偶数长度,它应该按原样打印字符串
  • 那你需要更具体一点,偶数的单词中没有中间字符!!!
  • 这是回答问题,长度条件很容易添加。但是“remove character”部分在这里
【解决方案2】:

你必须检查字符串的偶数或奇数长度,然后打印你想要的字符串。

希望这能满足您的需求。

String str = "CARS";
int l = str.length();

if((l % 2) == 0){
    System.out.println(str);
}else{
    StringBuffer sb = new StringBuffer(str);
    System.out.println(sb.deleteCharAt((l-1)/2).toString());
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多