Java: วิธีจัดแนวข้อความให้ถูกต้องด้วยตัวแปร

ฉันกำลังพยายามจัดแนวข้อความทางด้านขวาดังนี้:

String text = "whatever";
System.out.printf("%4s", text);

ฉันต้องการใช้ตัวแปรจำนวนเต็มแทนตัวเลข 4 ในรูปแบบโครงร่าง แต่ไม่รู้ว่าต้องทำอย่างไร กรุณาช่วย.

สิ่งที่ฉันลอง:

int spaceCount = 4;
String text = "whatever";
System.out.printf("%{spaceCount}s", text);

person LilGiibb    schedule 20.07.2018    source แหล่งที่มา
comment
ดู stackoverflow.com/questions/6080390/java-string -จัดชิดขวา   -  person lucumt    schedule 20.07.2018


คำตอบ (2)


Java ไม่แรง คุณต้องสร้างรูปแบบโรงเรียนเก่า:

System.out.printf("%" + spaceCount + "s", text);

หากคุณต้องการหลีกเลี่ยงการเข้ารหัสการต่อสตริง คุณสามารถจัดรูปแบบรูปแบบได้:

System.out.printf(String.format("%%%ds", spaceCount), text);
person Bohemian♦    schedule 20.07.2018

เนื่องจาก printf เอกสารชี้ให้เห็น:

วิธีการสะดวกในการเขียนสตริงที่จัดรูปแบบลงในสตรีมเอาต์พุตนี้โดยใช้สตริงรูปแบบที่ระบุและอาร์กิวเมนต์

ดังนั้นจึงเป็นเรื่องง่ายที่จะบรรลุการจัดแนว แบบมีพารามิเตอร์ ดังนี้:

System.out.printf("%" + spaceCount + "s", "Hello");

นอกจากนี้ยังกล่าวถึง:

การเรียกใช้เมธอดนี้ในรูปแบบ out.printf(format, args) มีพฤติกรรม เดียวกัน กับการร้องขอ: out.format(format, args)

ดังนั้นคุณจึงสามารถบรรลุผลได้ดังนี้:

System.out.format("%" + spaceCount + "s", "Hello");
person Hearen    schedule 20.07.2018