JAVA 删除字符串中指定的字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
参考技术A 直接使用空字符串替换就可以了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);
跟楼下的有异曲同工之妙啊……真不好选哪个了……
追答选哪个答案不重要呵呵,我也是上班没事就上来回答几个问题,同时自己也学习东西了。现在关键是楼主从几个回答里面学习一下思路了。呵呵
//建议楼主学习一下递归。像这种用递归比较好。而且有时候写代码思路很重要,据说有一本书叫代码大全,听说不错可以看看。遇到一个问题,不能只是求解决,关键学点东西。呵呵
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);追问
懂了……等下看看楼上的方法怎么样……
参考技术C /*** 替换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;
还有更简单的。。。
额……
参考技术D 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();
以上是关于JAVA 删除字符串中指定的字符的主要内容,如果未能解决你的问题,请参考以下文章