nsstring-OC中删除字符串中相邻的重复字符

问题描述

OC中删除字符串中相邻的重复字符

//去除字符串内的相邻的重复字符,例如:aabdaaadesff,最后结果abdadesf

    NSMutableString *string = [NSMutableString stringWithFormat:@"aabbssddffiieeoo"];

    NSString *strIndex1 = @"";
    NSString *strIndex2 = @"";

    for (NSInteger i = 0; i <= [string length]; i++) {

        strIndex1 = [string substringWithRange:NSMakeRange(i, 1)];

        strIndex2 = [string substringWithRange:NSMakeRange(i + 1, 1)];

        if ([strIndex1 isEqualTo:strIndex2]) {

            [string deleteCharactersInRange:NSMakeRange(i + 1, 1)];

        }

    }

    NSLog(@"%@", string);
            }

运行出来有错误 希望大神帮看看

解决方案

NSMutableString *string = [NSMutableString stringWithFormat:@"aabbbssddffffiieeoo"];

for (NSInteger i = 0; i < string.length - 1; i++) {
    for (NSInteger j = i+1; j < string.length; j++) {
        NSString *str1 = [string substringWithRange:NSMakeRange(i, 1)];
        NSString *str2 = [string substringWithRange:NSMakeRange(j, 1)];
        if ([str1 isEqualToString:str2]) {
            [string deleteCharactersInRange:NSMakeRange(j, 1)];
            j--;
        } else {
            break;
        }
    }
}

解决方案二:

NSString *currentStr=[[NSString alloc]init];
NSString *nextStr=[[NSString alloc]init];
NSString *string = @"abbssddffiieeoi";
NSMutableString *str=[[NSMutableString alloc]init];
int j=1;
for(int i=0;i<string.length;i++){

    if(i==string.length-1){
        currentStr=[string substringWithRange:NSMakeRange(string.length-1, 1)];
        [str appendString:currentStr];
        break;
    }else{
        currentStr=[string substringWithRange:NSMakeRange(i, 1)];
        nextStr=[string substringWithRange:NSMakeRange(j, 1)];
    if([currentStr isEqualToString:nextStr]){
        j++;

    }else{
        [str appendString:currentStr];
        j++;

    }
}
}
NSLog(@"%@",str);

解决方案三:

题主的错误是数组越界导致程序奔溃 把原题的等号去掉就 ok 了
reason: '-[__NSCFString substringWithRange:]: Range {8, 1} out of bounds; string length 8

问题很简单 题主要学会自己看错误报告 一般reason后面就是啦 翻译一下就知道了

解决方案四:

删除字符串中重复字符
删除字符串中重复字符
如何删除字符串中重复的字符

解决方案五:

SDFASDFASD

解决方案六:

删除字符串中相邻重复字符

NSMutableString *string = [NSMutableString stringWithFormat:@"ssddjjiirhwiofhjjdkkkd"];

    for (int i = 0; i < string.length; i++) {

        NSString *str1 = [string substringWithRange:NSMakeRange(i, 1)];

        NSString *str2 = [string substringWithRange:NSMakeRange(i - 1, 1)];

        if ([str1 isEqualToString:str2]) {

            [string deleteCharactersInRange:NSMakeRange(i, 1)];
        }

    }

    NSLog(@"%@", string);
时间: 2024-11-01 14:51:37

nsstring-OC中删除字符串中相邻的重复字符的相关文章

php中删除字符串中最先出现某个字符的实现代码_php技巧

复制代码 代码如下: $a = "字符串";$c= explode("要删除的文字", $a, 2); $b = $c[0].$c[1]; explode (PHP 3, PHP 4, PHP 5) explode -- 使用一个字符串分割另一个字符串 描述 array explode ( string separator, string string [, int limit] ) 此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串

js中删除字符串中空格方法

例1 删除头空格  代码如下 复制代码 function LTrim(str){ //去掉字符串 的头空格 var i; for(i=0;i if(str.charAt(i)!=" "&&str.charAt(i)!=" ") break; } str = str.substring(i,str.length); return str; } function RTrim(str){ var i; for(i=str.length-1;i>=0;

一个可以删除字符串中HTML标记的PHP函数

一个可以删除字符串中HTML标记的PHP函数作者:limote 当访客留言和发帖时,我们并不希望访客在留言和帖子中使用HTML标记,所以在访客提交留言和帖子时我门得把HTML标记删除,下面的函数就是实现此功能的函数 <? function delete_htm($scr) { for($i=0;$i<strlen($scr);$i++) { if(substr($scr,$i,1)=="<") { while(substr($scr,$i,1)!=">

php 删除字符串中的空格多种方法

 本教程提供了几款php教程  删除字符串中的空格多种方法哦,用了php函数,str_replace,trim,正则等替换字符串的空格有效方法 用php自带的函数 str_replace( "   ", " ",$str); 来替换   <?php $str = "##使用函数trim去掉字符串两端特定字符####"; $str1 = trim($str,"#"); //为函数trim传入第二个参数,trim将删除字符串

Python中使用strip()方法删除字符串中空格的教程

  这篇文章主要介绍了Python中使用strip()方法删除字符串中空格的教程,是Python入门学习中的基础知识,需要的朋友可以参考下 strip()方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本. 语法 以下是strip()方法的语法: ? 1 str.strip([chars]); 参数 chars -- 字符-从开始或结束的字符串被删除去除. 返回值 此方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本. 例子 下面的例子显示

JS删除字符串中重复字符方法

 这篇文章主要介绍了JS如何删除字符串中重复字符,需要的朋友可以参考下  代码如下: <!DOCTYPE html>  <html>  <head>  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">  </script>  <script>  $(document).ready(function(){  $(&quo

求一正则,可以删除字符串中所有 非键盘字符

问题描述 字符串是从其他地方读取过来的,含一些不确定的特殊符号,这些符合在字符串变量中能看到,通过console.writeline输出是正常的看不到了.求可以直接删除字符串中所有非键盘字符.键盘上能直接输入的,字母.数字.符号要保留着.或者能删除所有非打印字符的正则式. 解决方案 本帖最后由 xzyl 于 2016-03-09 09:47:33 编辑解决方案二:Regex.Replace(text,@"[^x00-xff]",string.Empty)将非ASCII码全部替换为空解决

[华为上机练习题]7.删除字符串中出现次数最少的字符

题目 描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除.输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 题目类别: 字符串 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节. 输出: 删除字符串中出现次数最少的字符后的字符串. 样例输入: abcdd 样例输出: dd 代码 /*------------------------

删除字符串中指定位置的字符

/********************************************************************** * 版权所有 (C)2015, Wu Yingqiang. * * 文件名称:DelPosChar.c * 文件标识:无 * 内容摘要:删除字符串中指定位置的字符 * 其它说明:无 * 当前版本: V1.0 * 作 者: Wu Yingqiang * 完成日期: 20150115 * ***********************************