如何在目标 c 中从 int 转换为字符串:示例代码

Posted

技术标签:

【中文标题】如何在目标 c 中从 int 转换为字符串:示例代码【英文标题】:How to convert from int to string in objective c: example code 【发布时间】:2010-11-09 10:36:04 【问题描述】:

我正在尝试从 int 转换为字符串,但我遇到了麻烦。我通过调试器跟踪执行,字符串“myT”获取“sum”的值,但如果“sum”为 10、11、12,则“if”语句无法正常工作。我不应该使用原始 int 类型来存储数字吗?此外,我尝试的两种方法(参见注释掉的代码)都未能遵循“if”语句的真实路径。谢谢!

int x = [my1 intValue]; 
    int y = [my2 intValue]; 
    int sum = x+y;
    //myT = [NSString stringWithFormat:@"%d", sum];
    myT = [[NSNumber numberWithInt:sum] stringValue];

    if(myT==@"10" || myT==@"11" || myT==@"12")
        action = @"numGreaterThanNine";

【问题讨论】:

您将整数放入字符串中是否有原因?将您的测试编写为if (sum >= 10 && sum <= 12) 会容易得多 如果下面的答案让您感到困惑,请查看以下相关问题:***.com/questions/3414644/… 【参考方案1】:

== 不应用于比较 if 中的对象。对于NSString,使用isEqualToString: 进行比较。

【讨论】:

【参考方案2】:

注释掉的版本是更正确的方法。

如果您对字符串使用== 运算符,您将比较字符串的地址(它们在内存中的分配位置)而不是字符串的值。这是非常有用的(它表明你有完全相同的字符串对象),但 99% 的时间你想要比较值,你这样做:

if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"])

【讨论】:

轻微错字,第二个比较中缺少 :。【参考方案3】:

如果您只需要一个字符串,我发现最简单的方法如下:

[NSString stringWithFormat:@"%d",numberYouAreTryingToConvert]

【讨论】:

【参考方案4】:
int val1 = [textBox1.text integerValue];
int val2 = [textBox2.text integerValue];

int resultValue = val1 * val2;

textBox3.text = [NSString stringWithFormat: @"%d", resultValue];

【讨论】:

【参考方案5】:

你可以使用文字,它更紧凑。

NSString* myString = [@(17) stringValue];

(框为NSNumber 并使用其stringValue 方法)

【讨论】:

@RavindranathAkila - stringWithFormat 更灵活/强大,应该普遍使用。如果您想要进行简单的转换,这只是一个捷径。 我更喜欢这个而不是 stringWithFormat,简洁明了。【参考方案6】:

只需将int 转换为NSString 使用:

  int x=10;

  NSString *strX=[NSString stringWithFormat:@"%d",x];

【讨论】:

【参考方案7】:

点语法可能更快!

@(intValueDemo).stringValue 

例如

int intValueDemo  = 1;
//or
NSInteger intValueDemo = 1;

//So you can use dot grammar 
NSLog(@"%@",@(intValueDemo).stringValue);

【讨论】:

以上是关于如何在目标 c 中从 int 转换为字符串:示例代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在目标 C 中将 NSInteger 值转换为 int 值? [复制]

将 char 转换为 int 的奇怪错误(目标 C)

我如何在 java [重复] 中从 int[] 转换为 List<Integer>

c语言中如何将short,int,long,float这些类型的数值转换为字符串?

c语言中如何将short,int,long,float这些类型的数值转换为字符串?

如何将string类型的数字转换成int