如何从NSString中捕获最后4个字符

C.J*_*hns 35 iphone nsstring ios nsrange swift

我接受一个NSString随机size的a UITextField并将其传递给我正在创建的方法,该方法将仅捕获输入的最后4个字符string.

我查看了NSString类参考库,我发现的唯一真正的选项看起来会像我想要的那样

- (void)getCharacters:(unichar *)buffer range:(NSRange)aRange
Run Code Online (Sandbox Code Playgroud)

我曾经使用过一次,但是静态参数'不会改变',但对于这个实现,我想使用非静态参数,这些参数会根据进入的字符串的大小而改变.

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

- (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?

}
Run Code Online (Sandbox Code Playgroud)

Kin*_*iss 94

使用substringFromIndex方法,

OBJ-C:

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

迅速:

let trimmedString: String = (s as NSString).substringFromIndex(max(s.length-4,0))
Run Code Online (Sandbox Code Playgroud)

  • 实际上,您应该使用以下命令保护自己:`NSString*trimmedString = [string substringFromIndex:MAX((int)[string length] -4,0)];`in case**string**小于**4**长字符. (6认同)
  • 啊,它的**substringFromIndex**不是**subStringFromIndex**,区分大小写:)非常感谢Kingofbliss (2认同)

小智 9

试试这个,

NSString *lastFourChar = [yourNewString substringFromIndex:[yourNewString length] - 4];
Run Code Online (Sandbox Code Playgroud)