Java中String…的含义

String… excludeProperty表示不定参数,也就是调用这个方法的时候这里可以传入多个String对象。
举例:

public class Main {  

    public static void main(String[] args) {  
        //测试,传入多个参数  
        test("hello", "world", "123", "china", "csdn", "com");  
    }  

    public static void test(String... arguments) {  
        for (int i = 0; i < arguments.length; i++) {  
            System.out.println(arguments[i]);  
        }  
    }  
}  

转自:https://blog.youkuaiyun.com/u010371710/article/details/52926498

Java 中,字符串占位符(String Placeholder)常用于动态拼接字符串内容。Java 提供了多种方式来实现字符串中使用占位符,常见的有: --- ## ✅ 1. 使用 `String.format()` `String.format()` 是 Java 中最传统的占位符格式化方法,语法类似于 C 的 `printf`。 ### 示例: ```java String name = "Alice"; int age = 25; String info = String.format("姓名:%s,年龄:%d", name, age); System.out.println(info); // 输出:姓名:Alice,年龄:25 ``` ### 常见占位符: | 占位符 | 含义 | |--------|------------------| | `%s` | 字符串(String) | | `%d` | 整数(int/long) | | `%f` | 浮点数(double/float) | | `%c` | 字符(char) | | `%b` | 布尔值(boolean)| --- ## ✅ 2. 使用 `System.out.printf()` `printf()` 方法也可以使用占位符输出格式化的字符串。 ### 示例: ```java String fruit = "苹果"; double price = 3.5; System.out.printf("水果:%s,价格:%.2f 元%n", fruit, price); // 输出:水果:苹果,价格:3.50 元 ``` - `%.2f` 表示保留两位小数。 - `%n` 表示换行符(平台无关)。 --- ## ✅ 3. 使用 `MessageFormat` 类 `MessageFormat` 提供了更灵活的格式化方式,适用于国际化场景。 ### 示例: ```java String pattern = "姓名:{0},年龄:{1},城市:{2}"; String result = MessageFormat.format(pattern, "Bob", 30, "北京"); System.out.println(result); // 输出:姓名:Bob,年龄:30,城市:北京 ``` --- ## ✅ 4. 使用文本块(Java 13+) 从 Java 13 开始支持文本块(Text Blocks),虽然不直接支持占位符,但可以结合 `formatted()` 方法使用。 ### 示例(Java 15+): ```java String sql = """ SELECT * FROM users WHERE name = '%s' AND status = %d """.formatted("Tom", 1); System.out.println(sql); ``` 等价于: ```sql SELECT * FROM users WHERE name = 'Tom' AND status = 1 ``` --- ## ✅ 5. 使用第三方库(如 Apache Commons Lang) Apache Commons Lang 提供了 `StrSubstitutor` 可以使用命名占位符。 ### 示例: ```java Map<String, Object> values = new HashMap<>(); values.put("name", "John"); values.put("age", 28); String template = "姓名:${name},年龄:${age}"; String result = StrSubstitutor.replace(template, values); System.out.println(result); // 输出:姓名:John,年龄:28 ``` --- ## 🔍 总结对比: | 方法 | 是否类型安全 | 支持命名占位符 | 推荐场景 | |--------------------|---------------|----------------|-----------------------| | `String.format()` | ✅ | ❌ | 简单格式化输出 | | `System.out.printf()` | ✅ | ❌ | 控制台打印日志 | | `MessageFormat` | ✅ | ✅(位置索引) | 国际化、复杂格式 | | `String.formatted()` | ✅ | ❌ | Java 15+ 文本块结合 | | `StrSubstitutor` | ❌ | ✅ | 模板替换、配置文件等 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值