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

tjjdgumg  于 2022-12-21  发布在  Java
关注(0)|答案(7)|浏览(212)

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

dzjeubhm

dzjeubhm1#

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();  
}
g9icjywg

g9icjywg2#

这将解决您的问题

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);
  }

}
dxpyg8gm

dxpyg8gm3#

你也可以使用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);
}
ne5o7dgx

ne5o7dgx4#

你可以一次计算长度,这样你就可以提高你的性能,在你需要的时候计算长度。

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();
}
ql3eal8s

ql3eal8s5#

public static void main(String args[]){

    String str = "ABCDEF";
    System.out.println("string : " + str);
    StringBuilder sb = new StringBuilder(str);
    int length= sb.length();
    if(length%2 != 0) {
        sb.deleteCharAt(length / 2);
    }
    else{
        sb.deleteCharAt((length / 2)-1);
        sb.deleteCharAt((length / 2)-1);
    }
    str = sb.toString();
    System.out.println("string : " + str);

}
vuktfyat

vuktfyat6#

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是中间1或2个字符的起始索引,str.length()/2+1是中间1或2个字符的结束索引。使用这2个整数查找要连接的两个子字符串。

hs1ihplo

hs1ihplo7#

第一个月
如果要在SystemOut中使用两个charAt,不要只使用+,而要使用+""+。

相关问题