当前位置: 首页 > 面试题库 >

美元符号($)在printf格式的字符串中有什么作用?

暨承平
2023-03-14
问题内容

我正在尝试像在此网页中那样使用printf语句在Java中进行格式化:单击此处。但是我只是不知道$符号的目的是什么。有人可以向我解释一下吗?

输入:

java 100
cpp 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


 类似资料:
  • 问题内容: Apple编写的有关SwiftUI的教程使用美元符号来绑定数据,而我在查找有关SwiftUI中此数据绑定的更多信息时遇到了麻烦。 您可以使用$前缀来访问对状态变量或其属性之一的绑定。 这是某种类型参数吗?那是使用“&”号传递的。 问题答案: 该是与物业代表一起使用。 它 不是运算符 ,而是 前缀 (感谢@matt!)。 有关属性委托的更多信息,请参见此Swift Evolution 文

  • 问题内容: 我想分割一个具有如下内容的字符串: 但是当我使用时: 它不能识别$并且不分割字符串,但是当我用$像X这样的字母替换$时,它可以工作。有人有什么主意吗? 问题答案: split函数需要一个正则表达式(而不是字符串)进行匹配。您的正则表达式使用特殊字符-在本例中为’$’-因此您需要对其进行更改以转义该字符: 还要注意,split返回一个字符串数组- 字符串是不可变的,因此无法修改。对Str

  • 由于ANSI C99,通过有或。但是bool是否也有格式说明符? 它将打印:

  • 问题内容: 在Java中,它似乎在少数其他语言,在模式的反向引用由一个反斜杠(如前面,,,等),但在替换字符串他们前面加一个美元符号(例如,,,和也)。 这是一个片段说明: 问题: Java特有的替换字符串中使用for反向引用吗?如果没有,用什么语言开始的?什么口味使用它,什么不使用? 为什么这是个好主意?为什么不坚持相同的模式语法?那会不会导致语言的衔接性和易学性? 如果上面的语句1和4是“正确

  • 我不明白。我使用了在互联网上找到的所有替换方法,包括我能找到的所有堆栈溢出。我甚至试过\u0024!发生了什么?

  • 问题内容: 我正在看有角度的1.2源代码,我很好奇为什么某些函数以两个美元符号开头。这是某种约定吗? 问题答案: 单个,用于保留公共标识符 保留 专用 标识符的双精度 引用文档: $前缀命名约定 … 如果您检查范围,您可能还会注意到一些以$$开头的属性。这些属性被认为是私有的,不应访问或修改。