java 截取字符串遇到的问题
有一个字符串如下:
String a="1,2,3,4,@3,4,5,6,7";
问题:因为@前后的两个数是重复的,那么我该怎么截取,将重复的变成一个,最后得到的结果为:1,2,3,4,5,6,7
[最优解释]
String str = "1,2,3,4,@3,4,5,6,7".replaceAll("@", "");
String[] strs = str.split(",");
StringBuffer buffer = new StringBuffer(",");
for (String s : strs){
if (buffer.indexOf("," + s + ",") == -1){
buffer.append(s + ",");
}
}
System.out.println(buffer.substring(1, buffer.length() - 1));
[其他解释]
先把@去掉,然后每两个字符的截取,取出的放到一个数组里面,然后去除重复,或者直接放到set里面
[其他解释]
public void sort(){
String a="1,2,3,4,@3,4,5,6,7";
// if(a.indexOf("@")!=-1){
a = a.replaceFirst("@", "");
// }
int testArr[]= new int[a.split(",").length];
for(int t=0;t<a.split(",").length;t++){
testArr[t] = Integer.parseInt(a.split(",")[t]);
}
int newArr[]=new int[testArr.length];
int k=0;
for(int i=0;i<testArr.length;i++){
boolean flag=false;
if("@".equals(testArr[i])){
testArr[i] = 0;
}
for(int j=i-1;j>=0;j--){
if(testArr[i]==testArr[j]){//判断如果第一个数和第二个数相等
flag=true;
break;
}
}
if(!flag){
newArr[k]=testArr[i];
k++;
}
}
for(int m=0;m<newArr.length;m++){
if(newArr[m]==0){
break;
}else{
System.out.print(newArr[m]);
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
rr r= new rr();
r.sort();
}