注:本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即后台留言通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意
使用StringWithFormat格式化字符串
使用StringWithFormat函数可以有效地在字符串中添加变量和格式输出。这个函数在Objective-C和Swift中都可以使用。在本文中,我们将详细介绍如何使用这个函数,并提供一些常用的格式输出示例。
创建一个格式化字符串
使用以下格式创建一个格式化字符串:
```objc
NSString *formatString = [NSString stringWithFormat:@\"这是一个格式化字符串 %@\", variable];
```
或者,在Swift中:
```swift
let formatString = String(format: \"这是一个格式化字符串 %@\", variable)
```
其中,% @是一个格式标识符。当格式字符串被解析时,它将被替换为variable的值。其他的格式标识符可用于输出其他类型的变量。
输出整型变量
如果要输出整型变量,可以使用以下格式标识符:
%d: 输出一个有符号的十进制整数
%u: 输出一个无符号的十进制整数
%x, %X: 输出一个十六进制整数,小写(%x)或大写(%X)
例如,将一个整型变量替换为一个格式化字符串:
```objc
int number = 123;
NSString *formattedString = [NSString stringWithFormat:@\"My lucky number is %d\", number];
NSLog(@\"%@\", formattedString);
// Output: My lucky number is 123
```
使用Swift:
```swift
let number = 123
let formattedString = String(format: \"My lucky number is %d\", number)
print(formattedString)
// Output: My lucky number is 123
```
输出浮点型变量
如果要输出浮点型变量,可以使用以下格式标识符:
%f: 输出一个浮点数
%e, %E: 输出一个以指数形式表示的浮点数,小写(%e)或大写(%E)
%g, %G: 自动选择%f或%e格式,使得输出最少的位数
例如,将一个浮点数替换为一个格式化字符串:
```objc
float f = 3.14;
NSString *formattedString = [NSString stringWithFormat:@\"圆周率是 %f\", f];
NSLog(@\"%@\", formattedString);
// Output: 圆周率是 3.140000
```
使用Swift:
```swift
let f = 3.14
let formattedString = String(format: \"圆周率是 %f\", f)
print(formattedString)
// Output: 圆周率是 3.140000
```
如果不需要小数点后面的位数,可以使用%.0f:
```objc
int i = 42;
NSString *formattedString = [NSString stringWithFormat:@\"The answer is %.0f\", f];
NSLog(@\"%@\", formattedString);
// Output: The answer is 42
```
使用Swift:
```swift
let i = 42
let formattedString = String(format: \"The answer is %.0f\", f)
print(formattedString)
// Output: The answer is 42
```
输出布尔型变量
布尔型变量可以使用以下格式标识符输出:
%d: 1表示true,0表示false
%@: 输出@“YES”表示true,@“NO”表示false
例如,将一个布尔型变量替换为一个格式化字符串:
```objc
BOOL b = YES;
NSString *formattedString = [NSString stringWithFormat:@\"My result is %@\", b ? @\"YES\" : @\"NO\"];
NSLog(@\"%@\", formattedString);
// Output: My result is YES
```
使用Swift:
```swift
let b = true
let formattedString = String(format: \"My result is %@\", b ? \"YES\" : \"NO\")
print(formattedString)
// Output: My result is YES
```
输出日期变量
NSDate对象可以用以下格式标识符输出:
%d: 一个月的第几天(01-31)
%e: 一个月的第几天(1-31)
%H: 24小时格式(00-23)
%I: 12小时格式(01-12)
%M: 分钟(00-59)
%p: @“AM”或@“PM”(大写)
%S: 秒(00-59)
%j: 一年中的第几天(001-366)
%w: 一周中的第几天(0-6)
%U: 一年中的第几个星期,以星期日为第一天(00-53)
%W: 一年中的第几个星期,以星期一为第一天(00-53)
%z: 时区偏移,格式为@“+0900”
%Z: 时区缩写,例如@“JST”
例如,输出当前日期:
```objc
NSDate *now = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@\"Today is %@.\"];
NSString *formattedString = [NSString stringWithFormat:[formatter stringFromDate:now]];
NSLog(@\"%@\", formattedString);
// Output: Today is 2021-07-12 08:53:26 +0000.
```
使用Swift:
```swift
let now = Date()
let formatter = DateFormatter()
formatter.dateFormat = \"Today is %@.\"
let formattedString = String(format: formatter.string(from: now))
print(formattedString)
// Output: Today is 2021-07-12 08:53:26 +0000.
```
结论
以上是使用StringWithFormat格式化字符串控制输出格式的一些示例。在您的Objective-C或Swift程序中,您可以使用这些格式标识符中的任何一个来输出不同类型的变量。使用StringWithFormat函数有助于让您的代码更灵活,更易读和易于维护。
本文标题:stringwithformat(使用StringWithFormat格式化字符串) 本文链接:http://www.cswwyl.com/meiwei/8283.html