如何在目标 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 值? [复制]
我如何在 java [重复] 中从 int[] 转换为 List<Integer>
c语言中如何将short,int,long,float这些类型的数值转换为字符串?