【问题标题】:How to capture last 4 characters from NSString如何从 NSString 中捕获最后 4 个字符
【发布时间】:2011-07-06 04:25:02
【问题描述】:

我接受来自UITextField 的随机sizeNSString 并将其传递给我正在创建的方法,该方法将仅捕获在string 中输入的最后4 个字符。

我查看了NSString 类参考库,我发现唯一真正的选项看起来可以满足我的需求

- (void)getCharacters:(unichar *)buffer range:(NSRange)aRange

我之前使用过一次,但使用了“不会改变”的静态参数,但对于这个实现,我想使用根据传入字符串的大小而改变的非静态参数。

到目前为止,这是我创建的方法,它正在从其他地方的 IBAction 传递NSString

- (void)padString:(NSString *)funcString
{

    NSString *myFormattedString = [NSString stringWithFormat:@"%04d",[funcString intValue]]; // if less than 4 then pad string
    //   NSLog(@"my formatedstring = %@", myFormattedString);

    int stringLength = [myFormattedString length]; // captures length of string maybe I can use this on NSRange?


    //NSRange MyOneRange = {0, 1}; //<<-------- should I use this? if so how?

}

【问题讨论】:

    标签: ios iphone swift nsstring nsrange


    【解决方案1】:

    使用 substringFromIndex 方法,

    OBJ-C:

    NSString *trimmedString=[string substringFromIndex:MAX((int)[string length]-4, 0)]; //in case string is less than 4 characters long.
    

    SWIFT:

    let trimmedString: String = (s as NSString).substringFromIndex(max(s.length-4,0))
    

    【讨论】:

    • 这给了我一个警告说(实例方法 subStringFromIndex 未找到类型默认为 'id')
    • 啊,它的 substringFromIndex 不是 subStringFromIndex,区分大小写 :) 非常感谢 Kingofbliss
    • 实际上,您应该使用:NSString *trimmedString=[string substringFromIndex:MAX((int)[string length]-4, 0)]; 来保护自己,以防 string 的长度小于 4 个字符。
    • 一些松散的想法:1.) 除非必要,否则不要调用 [substringFromIndex:],2.) NSString [length] 被声明为@property,所​​以使用点符号,3.) 强调类型的指针永远的风格! ;) NSString* trimmedString = string.length &gt; 4 ? [string substringFromIndex:(string.length - 4)] : string;
    【解决方案2】:

    试试这个,

    NSString *lastFourChar = [yourNewString substringFromIndex:[yourNewString length] - 4];
    

    【讨论】:

      【解决方案3】:

      你可以在 Swift 5 中检查这个函数:

      func subString(from myString: NSString, length: Int) {
          let myNSRange = NSRange(location: myString.length - length, length: length)
          print(myString.substring(with: myNSRange))
      }
      subString(from: "Menaim solved the issue", length: 4) // Output: ssue
      

      【讨论】:

        猜你喜欢
        • 2011-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-25
        • 1970-01-01
        • 2011-12-20
        相关资源
        最近更新 更多