루비에서 문자열 형식을 지정하는 방법에 대해 이야기해 보겠습니다.
문자열 형식을 지정하려는 이유는 무엇입니까? 숫자가 10 미만인 경우에도 선행 0을 사용하거나(예:01, 02, 03...) 콘솔 출력을 열 형식으로 멋지게 지정하는 것과 같은 작업을 수행할 수 있습니다.
다른 언어에서는 printf를 사용할 수 있습니다. 함수를 사용하여 문자열 형식을 지정하고 C를 사용한 적이 있다면 익숙할 것입니다. printf를 사용하려면 형식 지정자 목록과 변수 또는 값 목록을 정의해야 합니다.
Ruby 문자열 포맷 시작하기
sprintf 동안 Ruby에서도 사용할 수 있습니다. 이 게시물에서는 좀 더 관용적인 방법을 사용할 것입니다.
예는 다음과 같습니다.
time = 5 message = "Processing of the data has finished in %d seconds" % [time] puts message
Output => "Processing of the data has finished in 5 seconds"
이 예에서 %d 형식 지정자입니다. (사용 가능한 지정자의 목록은 다음과 같습니다.) 및 시간 형식을 지정하려는 변수입니다. %d 형식은 정수만 제공합니다.
부동 소수점 숫자를 표시하려면 %f를 사용해야 합니다. . 다음과 같이 소수점 이하 자릿수를 지정할 수 있습니다. %0.2f .
2 여기서 소수점 이하 두 자리만 유지하려는 것을 나타냅니다.
예는 다음과 같습니다.
score = 78.5431 puts "The average is %0.2f" % [score]
Output => The average is 78.54
숫자는 반올림됩니다. 예를 들어 78.549
를 사용한 경우 마지막 예에서는 78.55
가 인쇄되었을 것입니다. .
변환 및 패딩
10진수를 변환하여 16진수로 인쇄할 수 있습니다. %x 사용 형식:
puts "122 in HEX is %x" % [122]
Output => 122 in HEX is 7a
문자열 채우기:
숫자를 원하는 만큼 채우려면 다음 형식을 사용하세요. %0<숫자>d
puts "The number is %04d" % [20]
Output => The number is 0020
이 루비 문자열 형식을 사용할 수도 있습니다. 정렬된 텍스트 열을 만드는 트릭. 이 효과를 얻으려면 0을 대시로 바꾸세요.
또는 .ljust 및 .rjust
를 사용할 수 있습니다. 동일한 작업을 수행하기 위해 String 클래스의 메서드를 사용합니다.
예 :
names_with_ages = [["john", 20], ["peter", 30], ["david", 40], ["angel", 24]] names_with_ages.each { |name, age| puts name.ljust(10) + age.to_s } # Prints the following table john 20 david 30 peter 40 angel 24
결론
ruby &rails 문자열 형식에서 본 것처럼 정말 쉽습니다. 사용 가능한 다양한 형식 지정자를 이해해야 합니다.
출력 형식의 세계로의 빠른 여행을 즐겼기를 바랍니다! 더 좋은 콘텐츠를 보내드릴 수 있도록 제 뉴스레터를 구독하는 것을 잊지 마세요 🙂