两个字符串之间的元素比较 String str1 = "0708,0088,0701,0600";String str4 = "0701,0600,0206";我想比较str1和str4里面的元素,然后取出他们相同的存放到另外一个字符串中,如String result = "0701,0600",把不相同的字符串删除掉,是不是要用到递归? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【10yue】截止到2008-06-30 00:13:28的历史汇总数据(不包括此帖):发帖数:8 发帖分:310 结贴数:7 结贴分:280 未结数:1 未结分:30 结贴率:87.50 % 结分率:90.32 % 楼主加油 首先是转成字符串数组,也就是调用split(","),再把它们转换成List,然后就是遍历其中的一个List中的每一个元素,看看另一个List中有没有.如果有就放到一个字符串中.package com.awu.xml;import java.util.Arrays;import java.util.Iterator;import java.util.List;public class StringFineSame { public static void main(String[]args) { String str1 = "0708,0088,0701,0600"; String str4 = "0701,0600,0206"; List list1 = Arrays.asList(str1.split(",")); List list4 = Arrays.asList(str4.split(",")); Iterator it = list1.iterator(); StringBuffer sb = new StringBuffer(""); while(it.hasNext()) { Object o = it.next(); if(list4.contains(o)) { sb.append(o.toString()+","); } } if(!sb.toString().equals("")) { System.out.println(sb.substring(0,sb.length()-1)); } }} list.retainAll(list2);请按照小A的做法,生成2个List对象,然后调用 retainAll 方法看看吧!实际上就是交集! String str1 = "0708,0088,0701,0600"; String str4 = "0701,0600,0206"; Set<String> set1 = new HashSet<String>(Arrays.asList(str1.split(","))); Set<String> set4 = new HashSet<String>(Arrays.asList(str4.split(","))); set1.retainAll(set4); for (String s : set1) { System.out.print(s + ","); }难道只有set才支持 retainAll吗?奇怪了。 Arrays返回的List竟然不支持! import java.util.*;public class StringTest { public static void main(String[] args) { String str1 = "0708,0088,0701,0600"; String str2 = "0701,0600,0206"; StringTokenizer st1=new StringTokenizer(str1,","); StringTokenizer st2=new StringTokenizer(str2,","); //String s=""; List s1=new ArrayList(); List s2=new ArrayList(); StringBuffer s=new StringBuffer(); while(st1.hasMoreTokens()){ s1.add(st1.nextToken()); } while(st2.hasMoreTokens()){ s2.add(st2.nextToken()); } for(int i=0;i<s1.size();i++){ for(int j=0;j<s2.size();j++){ if(s1.get(i).equals(s2.get(j))){ s.append(s1.get(i)); } } } System.out.println(s.toString()); }}好像麻烦点 不过轻松实现 /** * 比较2组字符串中相同的元素 * @param str1 * @param str2 * @return */ public String strCompareTo(String str1,String str2) { String strs = ""; List list1 = Arrays.asList(str1.split(",")); List list2 = Arrays.asList(str2.split(",")); StringBuffer sb = new StringBuffer(); Iterator it = list1.iterator(); while(it.hasNext()) { Object o = it.next(); if(list2.contains(o)) { sb.append(o.toString()+","); } if(!sb.toString().equals("")) { strs = sb.substring(0,sb.length()-1); } } return strs; }把AWUSOFT的代码封装了一下,问题解决了。谢谢各位! throws 和 throw 之间的区别 我是新手,拜托大侠们看下这个例子,怎么运行不了啊? 大项目说eclipse不适合做,还是netbeans 好???????放在基础类里调查比较公平 树型结构刷新后怎么还是变成原来的 基础问题,请各位帮帮忙,在线等 Swing文字输入组件 与 智能ABC输入法 不兼容的问题 编译时出错,这是为什么呢. java字符串中"的处理方法 怎么会跳出呢? 求组!JAVA1.6类库如何加载 在JAVA中 写JS 为什么获取不到值? 谁有jawin alpha1.zip发我一下!
楼主【10yue】截止到2008-06-30 00:13:28的历史汇总数据(不包括此帖):
发帖数:8 发帖分:310
结贴数:7 结贴分:280
未结数:1 未结分:30
结贴率:87.50 % 结分率:90.32 %
楼主加油
import java.util.Iterator;
import java.util.List;public class StringFineSame {
public static void main(String[]args)
{
String str1 = "0708,0088,0701,0600"; String str4 = "0701,0600,0206";
List list1 = Arrays.asList(str1.split(","));
List list4 = Arrays.asList(str4.split(","));
Iterator it = list1.iterator();
StringBuffer sb = new StringBuffer("");
while(it.hasNext())
{
Object o = it.next();
if(list4.contains(o))
{
sb.append(o.toString()+",");
}
}
if(!sb.toString().equals(""))
{
System.out.println(sb.substring(0,sb.length()-1));
}
}
}
String str4 = "0701,0600,0206";
Set<String> set1 = new HashSet<String>(Arrays.asList(str1.split(",")));
Set<String> set4 = new HashSet<String>(Arrays.asList(str4.split(",")));
set1.retainAll(set4);
for (String s : set1) {
System.out.print(s + ",");
}难道只有set才支持 retainAll吗?奇怪了。 Arrays返回的List竟然不支持!
public class StringTest {
public static void main(String[] args) {
String str1 = "0708,0088,0701,0600";
String str2 = "0701,0600,0206";
StringTokenizer st1=new StringTokenizer(str1,",");
StringTokenizer st2=new StringTokenizer(str2,",");
//String s="";
List s1=new ArrayList();
List s2=new ArrayList();
StringBuffer s=new StringBuffer();
while(st1.hasMoreTokens()){
s1.add(st1.nextToken());
}
while(st2.hasMoreTokens()){
s2.add(st2.nextToken());
}
for(int i=0;i<s1.size();i++){
for(int j=0;j<s2.size();j++){
if(s1.get(i).equals(s2.get(j))){
s.append(s1.get(i));
}
}
}
System.out.println(s.toString()); }}
好像麻烦点 不过轻松实现
* 比较2组字符串中相同的元素
* @param str1
* @param str2
* @return
*/
public String strCompareTo(String str1,String str2)
{
String strs = "";
List list1 = Arrays.asList(str1.split(","));
List list2 = Arrays.asList(str2.split(","));
StringBuffer sb = new StringBuffer();
Iterator it = list1.iterator();
while(it.hasNext())
{
Object o = it.next();
if(list2.contains(o))
{
sb.append(o.toString()+",");
}
if(!sb.toString().equals(""))
{
strs = sb.substring(0,sb.length()-1);
}
}
return strs;
}把AWUSOFT的代码封装了一下,问题解决了。谢谢各位!