2017-12-16 25 views
1

내 목표는 첫 번째 변수는 왼쪽 정렬, 두 번째 변수는 가운데 맞춤, 마지막 변수는 공백 채우기와 맞도록 형식이 지정된 3 개의 다른 변수 (모든 문자열)로 한 행 출력을 만드는 것입니다. 크기가 할당 된 공간보다 작은 경우 변수. 루비 문자열 출력

가변 슬롯

은 다음의 = 최대 문자열 길이 10 변수 2 변수 1,3 = 최대 문자열 길이 7

(변수 1 & 2,2 & (3) 사이의 2 자리의 공간 버퍼가있을 것이다)

변수 1 & 3을 사용자 입력에 관계없이 같은 크기 (10)로하고 싶습니다. 입력이 10보다 작 으면 끝에 패딩 (변수 1 - 왼쪽 정렬) 또는 시작 (변수 3 - 오른쪽 정렬) 중 하나가 필요합니다.

다양한 형식과 인수를 사용하여 sprintf 방법을 사용해 보았습니다. 그러나 오류 또는 빈 출력이 함께 계속 나타납니다.

****IDEAL OUTPUT EXAMPLE**** 

VARIABLE 1 VARIAB2 VARIABLE 3 
+1

무엇을 시도 했습니까? 시도한 코드 스 니펫을 게시 할 수 있습니까? – Joe

답변

2

String 클래스에서 사용할 수있는 다양한 방법을 사용할 수 있습니다.

input1 = 'one' 
input2 = 'two' 
input3 = 'three' 

input1 = input1.ljust 10 
#=> "one  " 
input2 = input2.center 7  #credit to user Simple Lime 
#=> " two " 
input3 = input3.rjust 10 
#=> "  three" 

puts output = input1 + ' ' + input2 + ' ' + input3 
#one   two   three 
output.size 
#=> 31 
+2

'input2'' until' 루프는 짝수 길이의 문자열에서 깨지기 쉽습니다. (운 좋게도 더 이상 깨지지 않을 것입니다.) 운좋게도 루비가 우리를 다루었습니다 : http : // ruby-doc .org/core-2.4.2/String.html # method-i-center) 메소드를 문자열에 적용 ... 짝수 길이의 문자열에는 추가 공간이 추가됩니다.' "12".center (7, 'x ') # => "xx12xxx"\ –

+0

@SimpleLime 루프에 대한 의미를 알 수 있습니다. 또한 나는 '센터'를 놓친다는 것을 믿을 수 없다. 고마워, 내 대답을 업데이 트했습니다. –

+0

이것이 내가 필요한 것입니다. 이미 Ruby에 내장 메소드가 있다는 것을 깨닫지 못했습니다. 도움을 주셔서 감사합니다. 이것은 완벽합니다. –