stringformat用法 java
时间: 2024-12-26 13:21:32 浏览: 7
### Java 中 `String.format` 的用法
在 Java 中,`String.format` 方法用于创建格式化的字符串。此方法遵循通用转换语法,该语法类似于 C 语言中的 printf 函数[^1]。
#### 基本语法
```java
String formattedString = String.format(format, arguments...);
```
- `format`: 是一个包含普通字符和格式说明符的字符串。
- `arguments`: 被格式化并替换到指定位置的实际参数列表。
#### 格式说明符
| 类型 | 描述 |
| --- | --- |
| `%s` | 字符串 |
| `%d` | 整数(十进制)|
| `%f` | 浮点数 |
#### 示例代码
下面是一些具体的例子来展示如何使用这些功能:
##### 使用基本数据类型的格式化输出
```java
// 输出整数
System.out.println(String.format("The number is %d.", 42));
// 输出浮点数,默认保留六位小数
System.out.println(String.format("Pi equals approximately %f.", Math.PI));
```
##### 控制定宽与补零
对于数值类型可以控制最小宽度以及前导填充字符:
```java
// 定义两位固定长度,不足则前面补充0
System.out.println(String.format("%1$02d", 7)); // 结果为 '07'
```
##### 处理对象时需注意包装问题
当传递给 `String.format()` 或者其他类似的 API 如 `printf()` 需要处理原始类型作为参数的时候,应该先将其转成对应的包装类实例再传入,否则可能会遇到重载解析错误的情况[^2]:
```java
int num = 1;
double a = 3.14159;
double b = 2.71828;
// 正确的方式是使用 Integer.valueOf() 和 Double.valueOf()
System.out.println(String.format("%1$s , %.2f", Integer.valueOf(num), a));
System.out.println(Double.valueOf(a).toString().formatted("%.2f") + " , " + Double.valueOf(b).formatted("%.2f"));
```
阅读全文