例如:
String str1 = "1,2,3,5"; 考虑str1和str2里的数字个数有1000个,都以逗号分隔存放
String str2 = "1,2,4,6"; 如何实现:
1.找出在str1里有的,而在str2里没有的数字,并存放起来
2.找出在str1里没有的,而在str2里有的数字,并存放起来
String str1 = "1,2,3,5"; 考虑str1和str2里的数字个数有1000个,都以逗号分隔存放
String str2 = "1,2,4,6"; 如何实现:
1.找出在str1里有的,而在str2里没有的数字,并存放起来
2.找出在str1里没有的,而在str2里有的数字,并存放起来
String str2="";//str2=2 * str1
for(int i=0;i<1000;i++){
str1+=(i)+",";
str2+=(i*2)+",";
}
str1=str1.substring(0, str1.length()-2);
str2=str2.substring(0, str2.length()-2);
StringTokenizer st1=new StringTokenizer(str1,",");
StringTokenizer st2=new StringTokenizer(str2,",");
Vector<Integer> v1=new Vector<Integer>();
Vector<Integer> v2=new Vector<Integer>();
while(st1.hasMoreTokens()){
v1.add(Integer.valueOf(st1.nextToken()));
}
while(st2.hasMoreTokens()){
v2.add(Integer.valueOf(st2.nextToken()));
}
Vector<Integer> r1=new Vector<Integer>();//在str1里有的,而在str2里没有的数字
for(int i=0,im=v1.size();i<im;i++){
if(!v2.contains(v1.get(i))){
r1.add(v1.get(i));
System.out.println("1:"+v1.get(i));
}
}
Vector<Integer> r2=new Vector<Integer>();//在str1里没有的,而在str2里有的数字,并存放起来
for(int i=0,im=v2.size();i<im;i++){
if(!v1.contains(v2.get(i))){
r2.add(v2.get(i));
System.out.println("2:"+v2.get(i));
}
}
import java.util.regex.*;public class TestSetMinus { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "1,2,3,4,5,6,7,8";
String str2 = "3,4,5,11,44"; String reg = "-?\\d+"; Pattern p = Pattern.compile(reg);
ArrayList<String> list1 = new ArrayList<String>(100);
Matcher m1 = p.matcher(str1);
while(m1.find()){
list1.add(m1.group());
}
ArrayList<String> list2 = new ArrayList<String>(100);
Matcher m2 = p.matcher(str2);
while(m2.find()){
list2.add(m2.group());
}
ArrayList<String> tempList = new ArrayList<String>(list1);
tempList.removeAll(list2);
System.out.println("str1 - str2:");
for(int i=0; i<tempList.size(); i++){
System.out.println(tempList.get(i));
}
tempList.clear();
tempList.addAll(list2);
tempList.removeAll(list1);
System.out.println("str2 - str1:");
for(int i=0; i<tempList.size(); i++){
System.out.println(tempList.get(i));
}
}}
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class Test1 {
public static void main(String[] args) {
String str1="1,2,3,4,5,6,7,8,9,0,0,3,4,5,10";
String str2="11,2,35325,56,634,77,86,9,0,54,3,4,5,6,78,9,0";
String [] strArray1=str1.split(",");
String [] strArray2=str2.split(",");
Set<String> set1=new HashSet();
Set<String> set2=new HashSet();
Set<String> tempset1=new HashSet();
Set<String> tempset2=new HashSet();
for(int i=0;i<strArray1.length;i++){
set1.add(strArray1[i]);
}
for (int i=0;i<strArray2.length;i++){
set2.add(strArray2[i]);
}
for (int i=0;i<strArray2.length;i++){
if(!set1.contains(strArray2[i])){
tempset1.add(strArray2[i]);
}
}
for(int i=0;i<strArray1.length;i++){
if(!set2.contains(strArray1[i])){
tempset2.add(strArray1[i]);
}
}
Iterator<String> it1=tempset1.iterator();
while(it1.hasNext()){
System.out.print(it1.next()+" ");
}
System.out.println();
System.out.println("***************");
Iterator<String> it2=tempset2.iterator();
while(it2.hasNext()){
System.out.print(it2.next()+" ");
}
}
}
import java.util.*;
public class JiaoJi{
public static void main(String rags[]){
String str1 = "1,2,3,5";
String str2 = "1,2,4,6";
String str1Arr[]=str1.split(",");
String str2Arr[]=str2.split(",");
List list1=Arrays.asList(str1Arr);
List list2=Arrays.asList(str2Arr);
List l1=new ArrayList(list1);
List l2=new ArrayList(list2);
l1.removeAll(l2);System.out.println(l1);
l1=new ArrayList(list1);
l2.removeAll(l1);System.out.println(l2);
}
}