近来遇到了点问题,请教大家下,希望给个答案,谢谢。
需求:
有两个对应的数组:A={1,2,3,4,5},A1={a,b,a,a,c}
根据数组A1中的重复原素来取出数组A中对应的元素,并且累加成字符串:1,3,4
根据数组A1中的不重复的元素取出数组A中对应的元素,并且累加成字符串:2,5谢谢。
需求:
有两个对应的数组:A={1,2,3,4,5},A1={a,b,a,a,c}
根据数组A1中的重复原素来取出数组A中对应的元素,并且累加成字符串:1,3,4
根据数组A1中的不重复的元素取出数组A中对应的元素,并且累加成字符串:2,5谢谢。
import java.util.*;
public class TwoArray{
public static String[] get(int[] arr,char chArr[]){
List list1=new ArrayList(arr.length);
List list2=new ArrayList(arr.length);
for(int i=0;i<arr.length;i++){
list1.add(arr[i]);
list2.add(chArr[i]);
}
Set set1=new HashSet(arr.length);
Set set2=new HashSet(arr.length);
StringBuilder sb=new StringBuilder();
sb.append("[");
for(int i=0;i<list2.size();i++){
boolean found=false;
for(int j=i+1;j<list2.size();j++){
Character ch1=(Character)(list2.get(i));
Character ch2=(Character)(list2.get(j));
if(ch1.equals(ch2)){
set1.add(list1.get(i));
set1.add(list1.get(j));
set2.add(ch1);
found=true;
}
}
if(found){
for(Iterator it=set1.iterator();it.hasNext();){
sb.append(it.next());
sb.append(",");
}
list1.removeAll(set1);
list2.removeAll(set2);
set1.clear();
set2.clear();
i=-1;
}
}
if(sb.length()>1)sb.deleteCharAt(sb.length()-1);
sb.append("]");
String[] result=new String[2];
result[0]=sb.toString();
result[1]=list1.toString();
return result;
}
public static void main(String rags[]){
int[] A={1,2,3,4,5,6};
char[] A1={'a','b','a','a','c','a'} ;
String repeate=get(A,A1)[0];
System.out.println(repeate);
String noRepeate=get(A,A1)[1];
System.out.println(noRepeate);
}
}
public static void main(String[] args)
{
tt(new int[]{1,2,3,4,5},new String[]{"a","b","a","a","c"});
}
public static void tt(int[] array1,String array2[])
{
Set set1=new HashSet();
Set set2=new HashSet();
String str1="";
String str2="";
//set2中记录重复出现过的元素。
for(int i=0;i<array2.length;i++)
{
if(!set1.add(array2[i]))
{
set2.add(array2[i]);
}
}
for(int i=0;i<array1.length;i++)
{
if(set2.contains(array2[i]))
{
str1+=array1[i];
}
else
{
str2+=array1[i];
}
}
System.out.println(str1);
System.out.println(str2);
}
char a[] = str1.toCharArray();
for (int i = 0; i < a.length; i++) {
aa += (a[i] + ",");
}
String ac = aa.substring(4, aa.length() - 1);
ac.split(",");
System.out.println(ac);补一段字符串拆分的代码 3楼的contains()方法的使用顶上
what kind of results do u want if two arrays like these:
a={1,2,3,4,5} b={a,a,b,b,c}