How to capture last 4 characters from NSString
24,849
Solution 1
Use the substringFromIndex method,
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))
Solution 2
Try This,
NSString *lastFourChar = [yourNewString substringFromIndex:[yourNewString length] - 4];
Author by
C.Johns
Updated on December 08, 2020Comments
-
C.Johns over 3 years
I am accepting an
NSString
of randomsize
from aUITextField
and passing it over to a method that I am creating that will capture only the last 4 characters entered in thestring
.I have looked through
NSString
Class Reference library and the only real option I have found that looks like it will do what I want it to is- (void)getCharacters:(unichar *)buffer range:(NSRange)aRange
I have used this once before but with static parameters 'that do not change', But for this implementation I am wanting to use non static parameters that change depending on the size of the string coming in.
So far this is the method I have created which is being passed a
NSString
from an IBAction else where.- (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? }
-
C.Johns almost 13 yearsthat gives me a warning saying (instance method subStringFromIndex not found type defaults to 'id')
-
C.Johns almost 13 yearsAh, its substringFromIndex not subStringFromIndex, case sensitive :) thanks alot Kingofbliss
-
SwiftArchitect about 11 yearsActually, you should probably protects yourself by using:
NSString *trimmedString=[string substringFromIndex:MAX((int)[string length]-4, 0)];
in case string is less than 4 characters long. -
Gary almost 8 yearsSome loose thoughts: 1.) do not call [substringFromIndex:] unless necessary, 2.) NSString [length] is declared as @property so use the dot notation, 3.) Type-emphasized pointer style forever! ;)
NSString* trimmedString = string.length > 4 ? [string substringFromIndex:(string.length - 4)] : string;