当前位置: 首页 > 知识库问答 >
问题:

Java多个修饰符以打印一个变量的格式

秦胡媚
2023-03-14

我想打印一个表的字符串,但一个变量需要多个修饰符

    System.out.format("%-3s %-20s %-12s %-6s %.2f %-9s\n",
            id, city, date, days, price, vehicle);
}

我想要这样的东西

    System.out.format("%-3s %-20s %-12s %-6s %.2f%10s %-9s\n",
            id, city, date, days, price, vehicle);
}

但是它抛出了一个错误,因为它认为参数不会有6个而是7个值

共有1个答案

东方权
2023-03-14

你想做什么还不完全清楚。

如果您想结合%.2f的想法(例如,在逗号之后四舍五入到2位数字')和“this应该占用10个宽度;如果小于该值,请添加空格。如果它更多,哦,好吧,好吧,它会看起来很糟糕,但然后只需打印更多-那么,您正在寻找的.2f-每个“字母”(%f%s等)都有自己的一组修饰符,并且修饰符是完全独立的(尽管有趋势)。s中的10专门适用于字符串格式,你不能告诉java:你可以应用这个原则(添加空格以确保它始终占据至少10个宽度)-但是对于这个完全不同的格式字母?

但是,%f格式化程序也有一个宽度(事实上,它们几乎整天都有),所以使用它的“宽度设置”功能:.2f

.2f表示:

html" target="_blank">格式化数值。如果打印的值在小数部分中的位数超过2位,则将其四舍五入,使其具有2位作为小数;如果它的小数部分,则使用更少。此外,如果完整字符串(包括小数部分和逗号)的长度小于10个字符,请在左侧添加空格(使其右对齐),使其至少为10。如果更多,则更多,不要尝试删除任何内容。

您可能认为10.2的意思是:10位,然后是逗号,然后是2位。事实并非如此。

也许你的意思是:我希望一个输入(比如,price)连续使用两次。这在日期格式化中经常出现(但是,用格式格式化日期很奇怪,所以不会出现太多)。

System.out.format("Your birthday is on: %tY-%tm-%te\n", birthday, birthday, birthday);

%tY打印参数的年份、月份和日期。然而,我们必须连续三次过生日,这真的很烦人。我们可以解决这个问题:

System.out.format("Your birthday is on: %tY-%<tm-%<te\n", birthday);
// -OR -
System.out.format("Your birthday is on: %tY-%1$tm-%1$te\n", birthday);

这些文件极其详细地描述了这一切。下一次当你有问题时,通常最好查阅javadoc,阅读它并遵循它提供的任何链接,只有在你仍然困惑的时候,才可以在网上搜索,只有在你找不到任何东西的时候,才可以这样提问。

 类似资料:
  • 问题内容: 例如,我有两个变量,以及如何仅使用一个变量而不将类型转换为来在单独的行中打印两个整数。(如在C ++以下:) 问题答案: 在python3中: 在python2中: …或者使用python3的打印 自从我的第一个答案以来,OP就使用可变类型更改来编辑问题。更新已更新问题的答案: 如果您有一些整数,即和: Python 3: Python 2: 要么 要么

  • 在Java语言规范8的第8.1.1节类修饰符中,它指出:

  • 我目前正在从我找到的教程在Eclipse中构建一个应用程序,但我在代码中有错误。 我在下面包含了主要活动文件(MainActivity.java): 错误是这样写的 存在“变量levelNames的非法修饰符;只允许使用final” 有人有什么想法吗?

  • 本文向大家介绍Java中有多少个非访问修饰符?,包括了Java中有多少个非访问修饰符?的使用技巧和注意事项,需要的朋友参考一下 Java提供了一些其他修饰符,以提供可见性以外的功能。这些修饰符称为非访问修饰符 静态声明为静态 的成员是类的所有实例所共有的。静态成员是存储在类存储器中的类级别成员。 Final 此修饰符用于限制对变量或方法或类的进一步修改。声明为final的变量的值一旦获得值就无法修

  • 问题内容: 我发现自己对访问权限和非访问修饰符的顺序感到困惑。例如 我永远不知道正确的顺序是什么,有时我弄错了,因为有太多可能的组合。是否有明确的指南关于哪个应该先于另一个? 是否有任何描述要在代码中出现的格式和顺序?我正在尝试提供语法指南,但不确定它是否100%正确。这里是: 问题答案: 根据Java编程语言(简体)的官方 语法 : 因此,对于类和接口,修饰符必须 始终以任何顺序出现在关键字之前

  • 问题内容: 今天才开始学习Java,似乎无法弄清楚。我正在学习Learnjavaonline.org上的教程,该教程教您一些知识,然后要求您编写代码来完成特定的事情,然后检查输出以查看其正确性。问题是,如果它不正确,则不会说出原因,也不会给出正确代码的示例。 它希望我使用所有原语输出一个字符串,说“ H3110 w0r1d 2.0 true” 我想出了这个 } 但它输出 我怎样才能使它不将所有整数