Danny의 iOS 컨닝페이퍼
article thumbnail
반응형

1. String Format

<swift>
String(format: String, _ arguments: CVarArg...)

format에서는 %d , %f, %@ 이와 같은 기호를 넣어 변형이 가능하며,

arguments의 여러 인수들은 $1, $2... 과 같이 취급하여 사용도 가능하다.

 

 

1.1. 정수형 변환 (%d)

Int형식을 변환할 때 사용합니다. (오직 정수만 사용가능)

<swift>
let num1 = 123 let num2 = 456 // 변화를 확인하기 위해 []로 구분을 지어줌, 사용 시 [] 제거! String(format: "[%d]", num1) // [123] // 숫자가 범위를 넘어가면 앞에 공백 (왼쪽 정렬) String(format: "[%5d]", num1) // [ 123] // 숫자가 범위를 넘어가면 뒤에 공백 (오른쪽 정렬) String(format: "[%-5d]", num1) // [123 ] // 숫자가 범위를 넘어가면 앞에 0 추가 String(format: "[%.5d]", num1) // [00123] // 이와 같이도 여러개도 사용이 가능 String(format: "[%d, %d]", num1, num2) // [123, 456] // 만약 첫 번재 인수와 두 번째 인수와 위치를 바꿔주려면, // 1$(첫 번째 인수), 2$(두 번째 인수)를 사용하여 위치를 변경이 가능. String(format: "[%2$d, %1$d]", num1, num2) // [456, 123]

 

시계가 있다고 생각해보자.

시간이 1~9시 일 때는 한 자릿수이고 나머지는 두 자릿수가 된다.

시간을 두 자릿수 규격으로 통일시켜 만들고 싶을 땐, 어떻게 해야 할까?

<swift>
// 시간 = 7시 30분 5초 let hours = 7 let minutes = 30 let seconds = 5 // 그냥 출력하게 된다면 이와 같이 될 것이다. String(format: "%d : %d : %d", hours, minutes, seconds) // 7 : 30 : 5 // 00:00:00 시간 규격을 만들고 싶을 때 // %02d (문자의 길이는 2, 공백은 0으로 채운다.) String(format: "%02d : %02d : %02d", hours, minutes, seconds) // 07 : 30 : 05

 

 

 

1.2. 문자열 변환 (%@)

String형식을 변환할 때 사용합니다. (오직 문자열에서만 사용가능)

<swift>
let firstName = "Daniel" let lastName = "Yang" // 각 인수를 받아서 사용 가능 ($1, $2) let korFormat = "내 이름은 %2$@ %1$@" let engFormat = "My name is %@ %@" String(format: korFormat, firstName, lastName) String(format: engFormat, firstName, lastName) // 내 이름은 Yang Daniel // My name is Daniel Yang

 

 

1.3. 실수형 변환 (%f)

Float 또는 Double형식을 변환할 때 사용합니다. (오직 Float, Double형만 사용가능)

주로 소수점을 변환할 때 사용.

<swift>
let rNum1: Float = 12.123 let rNum2: Float = 45.456 // 변화를 확인하기 위해 []로 구분을 지어줌, 사용 시 [] 제거! String(format:"[%f]", rNum1) // [12.123000] // 소수점 첫 째 자리까지 출력 String(format:"[%.1f]", rNum1) // [12.1] // 소수점 둘 째 짜리까지 출력 String(format:"[%.2f]", rNum1) // [12.12] // 문자의 길이는 10개, 소수점 둘 째 짜리 출력 (오른쪽 정렬) String(format:"[%10.2f]", rNum1) // [ 12.12] // 문자의 길이는 10개, 소수점 둘 째 짜리 출력 (왼쪽 정렬) String(format:"[%-10.2f]", rNum1) // [12.12 ] // 문자의 길이는 10개, 공백을 0으로 채움, 소수점 둘 째 자리까지 출력 String(format:"[%010.2f]", rNum1) // [0000012.12] // 이와같이 여러 인수 사용가능 String(format:"[%.1f, %.1f]", rNum1, rNum2) // [12.1, 45.5] // 만약 첫 번재 인수와 두 번째 인수와 위치를 바꿔주려면 // 1$(첫 번째 인수), 2$(두 번째 인수)를 사용하여 위치를 변경이 가능. String(format:"[%2$.1f, %1$.1f]", rNum1, rNum2) // [45.5, 12.1]

 

 

2. 참고

 

How to create a String with format?

I need to create a String with format which can convert Int, Int64, Double, etc types into String. Using Objective-C, I can do it by: NSString *str = [NSString stringWithFormat:@"%d , %f, %ld,...

stackoverflow.com

 

[Swift] String 고수가 될거야

✔️ Apple 공식문서 참고 Apple Developer Documentation developer.apple.com Strings and Characters — The Swift Programming Language (Swift 5.5) Strings and Characters A string is a series of characters, such as "hello, world" or "albatross". Swift

leeari95.tistory.com

 

[Java] String.format 을 이용한 문자열 형식 설정하기

public static String format(String format, Object... args); public static String format(Locale l, String format, Object... args); String 의 static 메서드인 format 메서드는 문자열의 형식을 설정하는 메서드입니다. %d (10진수 형식

blog.jiniworld.me

 

반응형
profile

Danny의 iOS 컨닝페이퍼

@Danny's iOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!