JAVA 删除字符串中指定的字符

String s = "abcabcabc";
我想去掉指定的字母,应该怎么操作?比如去掉第二个b,第三个c这样
靠……方法都很好,不知道选哪个了……

直接使用空字符串替换就可以。

String b = "abcabcabc";

b=b.replace("b","");

这个方法是替换所有的,如果是想找第一个是b的,可以如下

String s = "abcabcabc";

int i=s.indexOf("b");

s=s.substring(0, i)+s.substring(i+1);

System.out.println(s);

扩展资料:

JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。

但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可。

参考资料来源:百度百科-Java

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-20
直接使用空字符串替换就可以了
String b = "abcabcabc";
b=b.replace("b","");

这个应该是比较简单的了,别的比如取出来你想要删掉的字符的位置,然后去除追问

是指定的,不是全部的

追答

这个方法是替换所有的,如果你是想找第一个是b的,可以如下
String s = "abcabcabc";
int i=s.indexOf("b");
s=s.substring(0, i)+s.substring(i+1);
System.out.println(s);

追问

如果是第二个b呢?

追答

等下。我给你写一个方法吧
方法如下,本来觉得挺简单的,但是感觉写出来代码太难看,精简了一会儿。呵呵,方法如下
/**
*
* @param s 要操作的字符串
* @param string 要删除的字符
* @param i 删除第几个
* @return
*/
public String remove(String s,String string,int i){
if(i==1){
int j=s.indexOf(string);
s=s.substring(0, j)+s.substring(j+1);
i--;
return s;
}else{
int j=s.indexOf(string);
i--;
return s.substring(0, j+1)+remove(s.substring(j+1), string, i);
}

}

追问

跟楼下的有异曲同工之妙啊……真不好选哪个了……

追答

选哪个答案不重要呵呵,我也是上班没事就上来回答几个问题,同时自己也学习东西了。现在关键是楼主从几个回答里面学习一下思路了。呵呵

//建议楼主学习一下递归。像这种用递归比较好。而且有时候写代码思路很重要,据说有一本书叫代码大全,听说不错可以看看。遇到一个问题,不能只是求解决,关键学点东西。呵呵

本回答被提问者采纳
第2个回答  2012-07-04
String s = "abcabcabc";//你的串
s=s.replace("", "-"); //每个字符加个-
String b[]=s.split("-");//截取字符串为数组
String n="";//新的字符传
int f=0;//b的循环变量
int y=0;//c的循环变量
for(int i = 0;i<b.length;i++){//循环数字
if(b[i]!=null&&b[i].trim().length()!=0){
if(b[i].equals("b")){
f++;
if(f==2){
b[i]="";
}
}
if(b[i].equals("c")){
y++;
if(y==3){
b[i]="";
}
}
}
n+=b[i];
}
System.out.println(n);追问

懂了……等下看看楼上的方法怎么样……

本回答被网友采纳
第3个回答  2012-07-04
/**
* 替换str字符串中第 ind 个字符串 rep,返回结果
* @param str 需要处理的字符串
* @param ind 替换第几个
* @param rep 替换字符串
* @return
*/
public String replaceByIndex(String str, int ind, String rep){
String result = "";//盛放结果
int tmp_i = 0;//记录下标
String tmp_str = "";//记录处理的字符串
for(int i=0; i<ind; i++){
tmp_str = str.substring(tmp_i);//
if(i!=ind-1){
result = result + tmp_str.substring(0, tmp_str.indexOf(rep)+1);//将前面不符合的放到结果字符串
tmp_i = tmp_i+tmp_str.indexOf(rep)+1;//设置剩余需要处理字符串起始位置在原始字符串的下标
System.out.println(result);
}else{
result = result + tmp_str.replaceFirst(rep, "");//符合第几个条件后,替换首个字符串,然后合并到结果字符串
System.out.println(result);
}
}
return result;
}

//测试方法
int ind = 1;//去掉第ind个
String rep = "a";//去掉什么字符串
String str = "abcabcabcabc";

String result = replaceByIndex(str, ind, rep);追问

学习~

追答

public static String replaceByIndex(String str, int ind, String rep){
String[] strs = str.split(rep);
String result = "";
for(int i=0; i<strs.length; i++){
result = result + strs[i] + (i!=ind-1 && i!=strs.length-1 ? rep : "");
}
return result;
}
还有更简单的。。。

追问

额……

第4个回答  2012-07-04
public static void main(String[] args) {
String param = "abcdabcd";
int[] array = {1, 3, 5};//你想要替换字符串的位置
System.out.println(deleteAll(param, array));
}
public static String deleteAll(String source, int arg[]) {
char[] array = source.toCharArray();
String[] arrayStr = new String[array.length];
for (int i = 0; i < array.length; i++) {
arrayStr[i] = String.valueOf(array[i]);
}
for (int key : arg) {
arrayStr[key - 1] = "";
}
StringBuffer strBuf = new StringBuffer();
for (String string : arrayStr) {
if (!"".equals(string)) {
strBuf.append(string);
}
}
return strBuf.toString();
}
相似回答