如何在java中的字符串中间两个字符是偶数

时间:2017-02-13 08:36:40

标签: java

给定字符串"ABCDEFGHIJKLM",其中包含奇数字母,如何删除中间字符?当字符串有一个偶数字母时,如何删除两个中间字符?

6 个答案:

答案 0 :(得分:1)

String对象在java中是不可变的。虽然您可以使用stringbuilder删除中间部分。

public static void main(String[] args) {
    String string = "ABCDE";
    StringBuilder sb = new StringBuilder(string);
    if(string.length() % 2 != 0)
        sb.deleteCharAt(string.length()/2);
    else{
        int middle = string.length()/2 - 1;
        sb.deleteCharAt(middle);
        sb.deleteCharAt(middle);
    }
    string = sb.toString();  
}

答案 1 :(得分:1)

您也可以使用StringBuffer删除中间并简单地编写 代码如下。

public static void main(String[] args) {
    String string = "ABCDEFGHIJKLM";
    StringBuffer sb = new StringBuffer(string);

    if(string.length() % 2 != 0) {
        sb.deleteCharAt(string.length()/2);
    }

    string = sb.toString();  
    System.out.println("ans==" +string);
}

答案 2 :(得分:1)

这将解决您的问题

public class Test{

   public static void main(String[] args) {
      String s = new String("ABCDf");
      System.out.println(s);
      int length = s.length();
      int mid = length / 2;
      s = (length % 2 != 0) ? (s.substring(0, mid) + s.substring(mid + 1, 
      s.length())) : (s.substring(0, mid - 1) + s.substring(mid + 1, s.length()));
      System.out.println(s);
  }

}

答案 3 :(得分:0)

你可以一次拿走长度,这样你就可以提高你的表现,在你需要时计算长度。

public static void main(String...args) {
    String s = "ABCDEFGHIJKL";
    StringBuilder sb = new StringBuilder(s);
    int length = s.length();
    if(length%2==0){
        sb.deleteCharAt(length/2);
        sb.deleteCharAt(sb.length()/2);
    }else{
        sb.deleteCharAt(length/2);
    }
    s =sb.toString();
}

答案 4 :(得分:0)

{
  "service": {
    "name": "spark-dev"
  }
}

答案 5 :(得分:0)

String str="ABCDEFGHIJKLM";
System.out.println(str.substring(0,(str.length()-1)/2)+str.substring(str.length()/2+1,str.length()));

-

说明:目标是获取已删除字符的开始和结束索引。 (str.length()-1)/2是起始索引,str.length()/2+1是中间1或2个字符的结束索引。使用这两个整数来查找用于连接的两个子字符串。