美元符号($)在printf格式的字符串中有什么作用?
我正在尝试像在此网页中那样使用printf语句在Java中进行格式化:单击此处。但是我只是不知道$符号的目的是什么。有人可以向我解释一下吗?
输入:
java 100cpp 65
python 50
预期的输出:(应该有一个空格而不是_)
 ================================ java___________100 
 cpp___________065 
 python_________050 
 ================================
我的代码:
public class Solution {    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("================================");
        for(int i=0;i<3;i++)
        {
            String s1=sc.next();
            int x=sc.nextInt();
            System.out.printf(s1 + "%03d", x);
            System.out.println();
        }
        System.out.println("================================");
    }
}
回答:
这是
。您可以阅读文档。我将尝试为您解释教程中的字符串:
String fmt = "%1$4s %2$10s %3$10s%n";// format
cnsl.printft(fmt, "Items", "Quantity", "Price");
cnsl.printft(fmt, "-----", "-----", "-----");
cnsl.printft(fmt, "Tomato", "1 kg", "15");
cnsl.printft(fmt, "Potato", "5 kg", "50");
cnsl.printft(fmt, "Onion", "2 kg", "30");
cnsl.printft(fmt, "Apple", "4 kg", "80");
通常,格式为%[argument_index$][flags][width][.precision]conversion。
在我们的示例中,#$指向printft()语句中的位置。我们有3个字符串格式化,因此为什么我们的格式化字符串有1$,2$,3$。每个参数之间的宽度后面的数字。该宽度从0开始,这意味着实际宽度将为+1。s是我们转换为字符串,最后是换%n行。
Items      Quantity      Price-----      --------      -----
Tomato     1 kg          15
Potato     5 kg          50
Onion      2 kg          30
Apple      4 kg          80
以上是 美元符号($)在printf格式的字符串中有什么作用? 的全部内容, 来源链接: utcz.com/qa/423917.html


