2009-07-02 25 views
45

làm thế nào tôi có thể viết lại này:gian in với String.format()

for (int i = 0; i < numberOfSpaces; i++) { 
    System.out.print(" "); 
} 

sử dụng String.format()?

PS

Tôi khá chắc chắn rằng điều này là có thể nhưng các javadoc is a bit confusing.

+0

Tôi không nghĩ rằng câu hỏi có được tín dụng mà họ xứng đáng được nâng cấp! – willcodejavaforfood

Trả lời

63

Bạn cần chỉ định chiều rộng tối thiểu của trường.

String.format("%" + numberOfSpaces + "s", ""); 

Tại sao bạn muốn tạo Chuỗi ký tự có độ dài nhất định.

Nếu bạn muốn có một cột có độ dài này với các giá trị sau đó bạn có thể làm:

String.format("%" + numberOfSpaces + "s", "Hello"); 

mang đến cho bạn numberOfSpaces-5 không gian tiếp theo Xin chào. Nếu bạn muốn Hello xuất hiện ở bên trái thì thêm dấu trừ trước numberOfSpaces.

+1

trong C Tôi sẽ viết: printf ("%. * S", numberOfSpacs, ""); mà không có bất kỳ chuỗi nối nào – dfa

+13

Hoặc, nếu bạn đang cảm thấy saucy, String.format (String.format ("%%% ds", numberOfSpaces), "") – skaffman

+0

@skaffman: nicely meta :) –

17
int numberOfSpaces = 3; 
String space = String.format("%"+ numberOfSpaces +"s", " "); 
Các vấn đề liên quan