请问在java 中,如何将一个字符串中的某个值移除掉,字符串类似数组结构

比如 String a = "1,2,3,4,5,6,7,8,9"
我要移除某个值,比如是5,那移除后的字符串应该是"1,2,3,4,6,7,8,9"
移除的值是动态的,请问该怎么做......请个位高手帮忙1
谢谢个位,我自己已经解决了
String informationid = "";
String arr[]= memberService.getMemberByMembernick(member.getMembernick()).getInformation().split(",");
for(int i = 0;i<arr.length;i++){
if(!(arr[i].equals(messageid.toString()))){
informationid+=arr[i]+",";
}
}
System.out.println(informationid.substring(0,informationid.length()-1));

楼上的明显不行啊,这不还是只能去掉一个数字么?如果一个数组里有好几个相同的怎么办?
需要import java.util.Scanner;
楼主可根据需要自己改为传参函数
public static void main(String args[]){
System.out.println("请输入数字组,数字请以,隔开");
Scanner scanner =new Scanner(System.in);
String str=null;
str=scanner.nextLine();
System.out.println("请输入要去除的数");
String rm=null;
rm=scanner.nextLine();
if(str.indexOf(rm)==-1){
System.out.println("要去除的数字不存在");return;}
System.out.println("要去除第几个(输入个数)?还是都除去?(输入’ -1‘)");
int n=scanner.nextInt();
if(n==0||n<-1){
System.out.println("非法输入");return;}
else if(n==-1){
str=","+str;
rm=","+rm;
str=str.replaceAll(rm,"");
if(str.charAt(0)==',')
str=str.substring(1);
System.out.println("结果为:"+str);
return; }
String str2[]=str.split(",");
for(int k=0;k<str2.length;k++)
if(str2[k].equals(rm)){
n--;
if(n==0){
n=-k;break;
} }
if(n>0){
System.out.println("要去除的数字不存在");return;}
String str3="";
boolean l=false;
for(int k=0;k<str2.length;k++){
if(k==-n)
continue;
if(l)
str3+=",";
str3+=""+str2[k];
l=true;
}
System.out.println("结果为:"+str3); }

用例:
请输入数字组,数字请以,隔开
3,999,324,4,4,3,6,3,3,3,536,4,58
请输入要去除的数
3
要去除第几个(输入个数)?还是都除去?(输入’ -1‘)
1
结果为:999,324,4,4,3,6,3,3,3,536,4,58

请输入数字组,数字请以,隔开
3,999,324,4,4,3,6,3,3,3,536,4,58
请输入要去除的数
3
要去除第几个(输入个数)?还是都除去?(输入’ -1‘)
4
结果为:3,999,324,4,4,3,6,3,3,536,4,58
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-01-23
这样看可以吧,其中a是指定字符串,keynum是要查询的
public String selectStr(String a, String keynum) {
String[] aStrings = a.split(",");
StringBuffer sBuffer = new StringBuffer();
if (a.indexOf(keynum) != -1 && aStrings.length > 0) {
for (int i = 0; i < aStrings.length; i++) {
if (aStrings[i].equals(keynum)) {
sBuffer.append(aStrings[i]);
}
}
}
return sBuffer.toString();
}
public static void main(String[] args) {
String a = "1,2,3,4,5,6,7,8,9";
String string = selectStr(a, "5");
System.out.println(string);
}本回答被提问者采纳
第2个回答  2011-08-29
楼上的方法是不行的,如某个元素为51,是会出错的

如果不用到集合,最好是使这个字符串先变成有规则的字符串:
String oa = "1,2,3,4,5,6,71,18,9";
String a = "," + oa + ",";
String na = a.replace("," + "18" + ",", ",");
System.out.println(na.substring(1, na.length() - 1));
为了节省内存,可以用StringBuffer代替string的拼接,然后封装成一个方法,传入的是原始字符串和需要移除的元素,返回移除后的字符串

封装后的方法:
/**
* 操作字符串
* @param sb 原字符串
* @param param 要移除的字段
* @return
*/
public String func(String sb,String param){
StringBuffer nsb = new StringBuffer();
String a = nsb.append(",").append(sb).append(",").toString();
StringBuffer np = new StringBuffer();
np.append(",").append(param).append(",");
String na = a.replace(np.toString(), ",");
return na.substring(1, na.length() - 1);
}
第3个回答  2011-08-29
import java.util.Scanner;
public class Test {

public static void main(String[] args) {
String a = "1,2,3,4,5,6,7,8,9";
String str =null;
//动态输入
Scanner scan =new Scanner(System.in);
System.out.println("请输入删除数字 (1-9):");
int num = scan.nextInt();
//做个简单判断即可
if (num==1)
{
str = a.replace("1,", "");
}
else
{
String reg=num+"";
str = a.replace(","+reg, "");
}

System.out.println(str);
}
}
第4个回答  2011-08-29
怎么个动态?
String s="";
s=//此出接收你要删除的值
a=a.replace(s,a);//这个方法怎么用忘了,你查API吧

请问在java 中,如何将一个字符串中的某个值移除掉,字符串类似数组结构...
需要import java.util.Scanner;楼主可根据需要自己改为传参函数 public static void main(String args[]){ System.out.println("请输入数字组,数字请以,隔开");Scanner scanner =new Scanner(System.in);String str=null;str=scanner.nextLine();System.out.println("请输入要去除的数");String rm...

java中 如何删除String中的值,并且保证不留下多余的逗号。
1:先写一个数组:如String aa=="a,b,c,d,e"; String aaa[]=aa.spit(","); String aaaa=""; String bb="a";(假设你要删除的值) for (int i=0;i++;i<aaa.length;){ if(!bb.equals(aaa[i])){aaaa+=aaa[i]+",";(这个时候得出的最后结果会多出来一个,)} }最后结果为:aaaa=aaaa.su...

java中怎么在数组中去除某个数字?
\/\/ 答案是太能了:不用集合一样办到:(ArryList集合底层就是这么弄的)\/\/ 方法很多种,软copy和硬copy,还有字符串桥接,随便举两种吧public class ArrayTest {public static void main(String[] args) {int a1[]={1,3,4,5,0,0,9,6,0,5,4,7,6,7,0,5};int a2[] = { 1, 0, 5,0...

java怎么去掉字符串最后一个字符
在Java中,如果你需要从字符串中移除最后一个特定字符,有几种方法可供选择。首先,最常见的方式是使用Substring方法。例如,如果你的字符串s为"1,2,3,4,5,",你可以这样做:s = s.Substring(0, s.Length - 1);另一种方法是利用RTrim函数,它最初主要用于去除字符串末尾的空格,但也可以用于...

java中字符串如何去除最后一个字符
在Java中,处理字符串并移除最后一个字符的操作相当直接,主要借助于String类的两个方法:substring()和length()。以下是详细的步骤:1. 使用substring()方法:这个方法有两个参数,第一个参数是开始截取的索引(包括该位置的字符),第二个参数是截止但不包括的索引。当你想要移除最后一个字符时,可以...

java中字符串如何去除最后一个字符
在Java中,移除字符串最后一个字符的操作相对直接,主要借助String类的substring()方法和length()属性。以下是具体步骤:首先,substring()方法有两个参数:开始索引和结束索引。这两个参数的含义是,从字符串中从指定开始位置开始截取,直到结束索引(但不包括该位置)的子串。例如,如果你想从字符串尾部...

java截取字符串中的数字,并且分组?
完整的Java程序如下 public class F{ public static void main(String[] args){ String str="鱼豆腐20海带3掌中宝8鸡翅2可乐2";String[] s=str.split("(?<=[0-9])(?=[\一-\龥])");for(int i=0;i

java如何删除掉数组中的某个元素??
= new String[arrays.length];int i = 0;for(String s:arrays){ if(!s.equals("2")){ tempArr[i] = s;i++;} } for(int j = 0; j < tempArr.length; j++) { System.out.println(tempArr[j]);} \/\/ 数组本身是不可以移除元素的 但可以通过中间变量来实现数组的移除 ...

java怎么替换字符串某个字符
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储...

java中字符串如何去除最后一个字符
利用java中String类的substring()字符串截取方法 和length()求字符串长度方法即可。1、语法解析:public String substring(int beginIndex, int endIndex);第一个int为开始的索引,对应String数字中的开始位置;第二个是截止的索引位置,对应String中的结束位置。2、具体代码如下:3、执行结果如下:...

相似回答