一路探索者

导航

 

Java中字符串格式化是通过String类的format()方法来实现的,该方法有两种定义:

public static String format(String format,

                            Object... args)

public static String format(Locale l,

                            String format,

                            Object... args)

这两种用法,都有“String format”参数,该参数对应如下三种格式:

(1)、常规类型、字符类型和数值类型的格式说明符的语法

%[argument_index$][flags][width][.precision]conversion

(2)、用来表示日期和时间类型的格式说明符的语法

%[argument_index$][flags][width]conversion

(3)、与参数不对应的格式说明符的语法

%[flags][width]conversion

以上前两种语法含“argument_index$”部分,它的意思就是参数索引。以下介绍这些参数索引的用法:

argument_index$是可选的,是一个十进制整数,用于表明参数在参数列表中的位置。第1个参数由 "1$" 引用,第2个参数由 "2$" 引用,第3个参数由 "3$" 引用,依此类推。

 

本例的关键代码如下:

btnNewButton01.addActionListener(new ActionListener() {

       public void actionPerformed(ActionEvent arg0) {

              String strRes;

                           

              //1、不使用参数索引

              //第1个转换,对应第1个变量;第2个转换,对应第2个变量;第3个转换,对应第3个变量。

              strRes = String.format("%d-%d-%d",100,200,300);

              textField01.setText(strRes); //显示为100-200-300

              //可见,不使用参数索引时,参数从左到右依次提前变量。

 

              //2、使用参数索引

              //第1个转换,对应第1个变量;第2个转换,对应第2个变量;第3个转换,对应第3个变量。

              strRes = String.format("%1$d-%2$d-%3$d",100,200,300);

              textField02.setText(strRes); //显示为100-200-300

              //可见,使用从小到大顺序的参数索引,与不使用参数索引的效果一致。

                           

              //3、参数索引部分顺序

              //第1个转换,对应第1个变量;第2个转换,对应第3个变量;第3个转换,对应第2个变量。

              strRes = String.format("%1$d-%3$d-%2$d",100,200,300);                        

              textField03.setText(strRes);//显示为100-300-200                        

              //可见,参数索引可以改变,而变量或者常量的顺序不会变(始终从小到大排列)。

                           

              //4、参数索引完全改变顺序

              //第1个转换,对应第3个变量;第2个转换,对应第2个变量;第3个转换,对应第1个变量。

              strRes = String.format("%3$d-%2$d-%1$d",100,200,300);

              textField04.setText(strRes); //显示为300-200-100

              //可见,参数索引可以改变,而变量或者常量的顺序不会变(始终从小到大排列)。

       }

});

posted on 2024-06-03 10:20  一路探索者  阅读(19)  评论(0编辑  收藏  举报