Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

Ruby Dictionary

  1. Home
  2. Ruby Dictionary
  3. String.* / center / ljust / rjust

String.* / center / ljust / rjust

Since: Ruby 1.8(2003)

Methods for padding a string to a specified width (aligning with fill characters) or repeating it.

Syntax

string.center(width)
string.center(width, pad_char)

# Left-aligns the string (pads on the right).
string.ljust(width)
string.ljust(width, pad_char)

# Right-aligns the string (pads on the left).
string.rjust(width)
string.rjust(width, pad_char)

# Repeats the string n times.
string * n

Method List

MethodDescription
center(width, pad=' ')Pads the string on both sides with the fill character to reach the specified width, centering the text. Uses a space as the default fill character.
ljust(width, pad=' ')Pads the string on the right with the fill character to reach the specified width, left-aligning the text.
rjust(width, pad=' ')Pads the string on the left with the fill character to reach the specified width, right-aligning the text. Use rjust(n, "0") to zero-pad numbers.
str * nReturns a new string consisting of the original string repeated n times.

Sample Code

sample_string_center_ljust_rjust.rb
text = "Ruby"

# Center the string.
puts text.center(10) # "   Ruby   "
puts text.center(10, "*") # "***Ruby***"

# Left-align (pad on the right).
puts text.ljust(10) # "Ruby      "
puts text.ljust(10, "-") # "Ruby------"

# Right-align (pad on the left).
puts text.rjust(10) # "      Ruby"
puts text.rjust(10, "0") # "000000Ruby"

# Zero-pad numbers (useful for dates, sequential numbers, etc.).
puts "5".rjust(3, "0") # 005
puts "12".rjust(3, "0") # 012
puts "123".rjust(3, "0") # 123 (no change if already at or beyond the width)

# Repeat a string with the * operator.
puts "=-" * 10 # =-=-=-=-=-=-=-=-=-=-
puts "Ruby " * 3 # Ruby Ruby Ruby

# Useful for formatting table output.
["Item", "Price", "Qty"].each do |header|
  print header.ljust(10)
end
puts

Running the above produces the following output:

ruby string_center_ljust_rjust.rb
   Ruby   
***Ruby***
Ruby      
Ruby------
      Ruby
000000Ruby
005
012
123
=-=-=-=-=-=-=-=-=-=-
Ruby Ruby Ruby 
Product       Price        Qty        

Notes

center, ljust, and rjust are used for formatting text output. They are handy for aligning columns in command-line tools or decorating log headings. If the specified width is already less than or equal to the string's length, the string is returned unchanged.

You can use rjust(n, "0") to zero-pad numbers, but sprintf or string formatting (e.g., "%03d") works directly with numeric values, so it may be more appropriate when dealing with numbers specifically.

For string formatting, see sprintf() / % operator. To get the length of a string, use length / size.

If you find any errors or copyright issues, please .