头部背景图片
崇山峻岭 |
崇山峻岭 |

字符串修剪

最近公司项目中需要字符串修剪, 而且项目中每个地方的需求还不太一样, 所以写了下面的一个分类, 感觉挺好用分享出来给大家, 希望遇到同样问题的同志少花时间, 注释比较清晰, 我就废话不多说了, 看代码

  1. 头文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    //
    // NSString+JLTrim.h

    //
    // Created by 王俊岭 on 16/8/17.
    //

    #import <Foundation/Foundation.h>

    @interface NSString (JLTrim)
    /**
    * 修剪字符串
    *
    * @param val 要修改的字符串
    * @param characterSet 要去除的类型
    *
    * @return 修剪后的字符串
    */
    + (NSString *)trim:(NSString *)val trimCharacterSet:(NSCharacterSet *)characterSet;
    /**
    * 删除字符串前后空格
    *
    * @param val 原始字符串
    *
    * @return 修剪后字符串
    */
    + (NSString *)trimWhitespace:(NSString *)val;
    /**
    * 删除字符串前后空行
    *
    * @param val 原始字符串
    *
    * @return 修改后字符串
    */
    + (NSString *)trimNewline:(NSString *)val;
    /**
    * 删除字符串前后空行和空格
    *
    * @param val 原始字符串
    *
    * @return 修改后字符串
    */
    + (NSString *)trimWhitespaceAndNewline:(NSString *)val;

    /**
    删除字符串中所有空格

    @param val 原始字符串
    @return 修改后的字符串
    */

    • (NSString )trimAllWhitespace:(NSString )val;

/**
删除字符创中所有回车

@param val 原始字符串
@return 修改后字符串
*/
  • (NSString )trimAllNewLine:(NSString )val;
    @end

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43

    2. 实现文件

    ```objc
    //
    // NSString+JLTrim.m
    //
    // Created by 王俊岭 on 16/8/17.
    //

    #import "NSString+JLTrim.h"

    @implementation NSString (JLTrim)
    + (NSString *)trim:(NSString *)val trimCharacterSet:(NSCharacterSet *)characterSet {
    NSString *returnVal = @"";
    if (val) {
    returnVal = [val stringByTrimmingCharactersInSet:characterSet];
    }
    return returnVal;
    }
    + (NSString *)trimWhitespace:(NSString *)val {
    return [self trim:val trimCharacterSet:[NSCharacterSet whitespaceCharacterSet]]; //去掉前后空格
    }
    + (NSString *)trimNewline:(NSString *)val {
    return [self trim:val trimCharacterSet:[NSCharacterSet newlineCharacterSet]]; //去掉前后回车符
    }
    + (NSString *)trimWhitespaceAndNewline:(NSString *)val {
    return [self trim:val trimCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //去掉前后空格和回车符
    }

    + (NSString *)trimAllWhitespace:(NSString *)val {
    NSMutableString *mutStr = [NSMutableString stringWithString:val];
    NSRange range = {0,val.length};
    [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];
    return mutStr.copy;
    }
    + (NSString *)trimAllNewLine:(NSString *)val {
    NSMutableString *mutStr = [NSMutableString stringWithString:val];
    NSRange range = {0,val.length};
    [mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range];
    return mutStr.copy;
    }
    @end

    注意

    stringByTrimmingCharactersInSet 这个方法只能删除字符串两端的字符, 不能对字符串中间的字符进行操作, 所以想删除字符串中间的字符就需要字符串替换的方法replaceOccurrencesOfString

  • 1

  • 2

  • 3

  • 4

  • 5