首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java 截取字符串遇到的有关问题

2012-12-21 
java 截取字符串遇到的问题有一个字符串如下:String a1,2,3,4,@3,4,5,6,7问题:因为@前后的两个数是重

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();
}

热点排行