给定字符串"ABCDEFGHIJKLM",其中包含奇数个字母,如何删除中间的字符?当字符串包含偶数个字母时,如何删除中间的两个字符?
"ABCDEFGHIJKLM"
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(); }
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); } }
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); }
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(); }
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); }
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个整数查找要连接的两个子字符串。
(str.length()-1)/2
str.length()/2+1
hs1ihplo7#
第一个月如果要在SystemOut中使用两个charAt,不要只使用+,而要使用+""+。
7条答案
按热度按时间dzjeubhm1#
String对象在java中是不可变的,尽管你可以用stringbuilder去掉中间的部分。
g9icjywg2#
这将解决您的问题
dxpyg8gm3#
你也可以使用StringBuffer去掉中间的部分,然后在下面写一些简单的代码。
ne5o7dgx4#
你可以一次计算长度,这样你就可以提高你的性能,在你需要的时候计算长度。
ql3eal8s5#
vuktfyat6#
--
说明:目标是获取被删除字符的起始和结束索引。
(str.length()-1)/2
是中间1或2个字符的起始索引,str.length()/2+1
是中间1或2个字符的结束索引。使用这2个整数查找要连接的两个子字符串。hs1ihplo7#
第一个月
如果要在SystemOut中使用两个charAt,不要只使用+,而要使用+""+。