【问题标题】:Objective-c convert NSString into NSIntegerObjective-c 将 NSString 转换为 NSInteger
【发布时间】:2011-12-04 17:31:14
【问题描述】:


我遇到了这个小问题。当我有一个字符串“3 568 030”并且我使用 [myString intValue];它给我的结果只有 3,问题是我想将整数转换为 int/nsinteger。如果有帮助的话,字符串总是只包含数字。我尝试使用 replaceoccurencesofstring(或名称是什么),但不知何故不起作用...
谢谢

【问题讨论】:

  • 所以你已经把数字中的空格替换为空了?

标签: objective-c string integer


【解决方案1】:

做:

NSString *str = @"3 568 030";

int aValue = [[str stringByReplacingOccurrencesOfString:@" " withString:@""] intValue];
NSLog(@"%d", aValue);

输出

3568030

【讨论】:

    【解决方案2】:

    这是因为你的字符串中有空格,你必须先像这样删除空格:

    NSString *trimmedString = [myString stringByReplacingOccurrencesOfString:@" " withString:@""];
    
    NSInteger *value = [trimmedString intValue];
    

    【讨论】:

    • 修剪不会删除字符串中间的字符
    【解决方案3】:

    我的猜测是你错误地使用了stringByReplacingOccurencesOfString::

    //Remove spaces.
    myString = [myString stringByReplacingOccurencesOfString:@" " withString @""];
    int myNumber = [myString intValue];
    

    【讨论】:

      【解决方案4】:

      首先,使用 :

      删除原始字符串中的所有空格
      NSString *trimmedString = [yourOriginalString stringByTrimmingCharactersInSet:
                                    [NSCharacterSet whitespaceAndNewlineCharacterSet]];
      

      然后,您可以将其转换为 int/NSInteger。注意:使用[myString intValue] 会将您的字符串转换为int,但[myString integerValue] 会将其转换为NSInteger。

      【讨论】:

        【解决方案5】:
        NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
        [f setNumberStyle:NSNumberFormatterDecimalStyle];
        NSNumber * myNumber = [f numberFromString:@"42"];
        [f release];
        

        【讨论】:

          猜你喜欢
          • 2012-03-13
          • 1970-01-01
          • 2015-05-30
          • 2012-10-06
          • 2011-01-24
          • 1970-01-01
          • 1970-01-01
          • 2011-09-18
          • 2020-10-26
          相关资源
          最近更新 更多