2 mapmapm MapMapM 于 2012.12.20 13:18 提问

比较两个字符串,删除评论元素

有两个用逗号分开的NSString,我想要移除第一个字符重复的字符。

ex. str1 = 0,1,2,3
    str2 = 1,2.
    output -> str1 = 0,3 and str2 = 1,2.

有一种办法是,用逗号分开两个字符串,但是需要两个NSArray和LOOP循环,然后移除评论元素,但是这样实现起来非常困难,有没有简单办法实现?谢谢好心人帮忙。

2个回答

redCoral_
redCoral_   2012.12.20 14:04
已采纳

可以不用循环
但是需要设置好所有的API

NSString *str1=@"0,1,2,3";
NSString *str2=@"1,2";

NSMutableArray *arr1=[[NSMutableArray alloc]initWithArray:[str1 componentsSeparatedByString:@","]];

[arr1 removeObjectsInArray:[str2 componentsSeparatedByString:@","]];
NSLog(@"arr1 %@",arr1);
/*
NSMutableString *finalString=[NSMutableString new];

for (NSInteger i=0; i<[arr1 count]; i++) {
    NSString *str=[arr1 objectAtIndex:i];

    [finalString appendString:str];
    if (i!=[arr1 count]-1) {
      [finalString appendString:@","];  
    }
}
*/
NSString *finalString=[arr1 componentsJoinedByString:@","];
NSLog(@"finalString %@",finalString);
MapMapM
MapMapM 非常感谢
5 年多之前 回复
abcdeFGh_xyz
abcdeFGh_xyz   2012.12.20 13:54
   id str1=@"aa,ab,ac,cd,ce,cf";
    id str2=@"aa,ac,cd,cf";
    //no ab and no ce

    id cmps1 = [str1 componentsSeparatedByString:@","];
    id cmps2 = [str2 componentsSeparatedByString:@","];        

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT SELF IN %@", cmps2];
    NSArray *final = [cmps1 filteredArrayUsingPredicate:predicate]; 
    id str = [final componentsJoinedByString:@","];
    NSLog(@"%@", str);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java删除两个字符串中的相同元素(带符号)
String str1 = "张三,李四,王五,陈六,吕七,孙八,赵九"; String str2 = "王五,孙八"; String[] arr1 = str1.split(","); String[] arr2 = str2.split(","); for (int i = 0; i < arr2.length; i++) { for (int j = 0; j < arr1.length
c++基础之字符串的插入与删除
删除字符:从一个字符串中间删除字符void erase(char text[],int index) { int len=strlen(text); for(int i=index;i<len;i++) { text[i]=text[i+1];//后面的字符前移 } }如果要从一个字符串里删除多个不相邻的字符,则最佳方案是复制一份,这样只拷贝一次。voi
删除字符串中相同的元素
代码: #include main() { char a[100]="aabbccccdef"; int i,k=0; for (i=1;a[i];i++) { if (a[k]!=a[i]) { k++; a[k]=a[i]; } } a[k+1]='\0'; puts(a); 这只限于已经按顺序排好的字符串,对于无序的则处理错误 对无序的字
js中比较两个数组中是否含有相同的元素,可去重,可删除合并为新数组
最近看到一段好用的js端处理两个数组相同元素的代码,觉得挺好记录下来://做比较的两个数组 var array1 = ['a','b','c','d','e'];//数组1 var array2 = ['d','f','e','a','p'];//数组2//临时数组存放 var tempArray1 = [];//临时数组1 var tempArray2 = [];//临时数组2for(var i=
数组比较问题
问题描述:  比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数 比如:数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0 数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元素个数为3 #include
两个java数组删除相同元素
public class Arra { public static void main(String[] args) { String[] a={"1","2","3","4","5","6","7","8","9","10"}; String[] b={"11","12","13","14","5","6","7","18","19","20"}; String[] arrRes
java找出两个字符串相同的元素
前两天面试,面试官让我在5分钟之内手写一个程序,就是找出两个字符串相等的元素,当时搞了一个双重循环,面试官说很low。现在写一个高效一点的,分享一下。 public class TestMain { public static void main(String[] args) throws Exception { String A="abcdef";
JS中比较2个字符串内元素的不同(字符1, 字符2, 分隔符可选)
JS中比较2个字符串内元素的不同(字符1, 字符2, 分隔符可选) 我用来比较在2个Oracle数据库中导出的表有那些没导入成功.
比较两个字符串的相似度
最近在做算法作业,需要比较两个字符串的相似度,并且返回相同的元素所占的百分比。
华为上机-字符串相关题目
华为校园招聘机考试题总结(软件)   1、删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。 #include#include#include#includeint delete_sub_str(constchar*str,constchar*sub_str,char*result){ assert(str != NULL && sub_str != NULL