给定字符串"ABCDEFGHIJKLM"
,其中包含奇数字母,如何删除中间字符?当字符串有一个偶数字母时,如何删除两个中间字符?
答案 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个字符的结束索引。使用这两个整数来查找用于连接的两个子字符串。