Java 打印值索引

2018-02-12 22:29 更新

Java格式 - Java 打印值索引


以下代碼使用 s 轉(zhuǎn)換將其參數(shù)格式化為字符串。

public class Main {
  public static void main(String[] args) {
    System.out.printf("%s, %s,  and  %s",  "A",  "B", "C");
  }
}

上面的代碼生成以下結(jié)果。

格式字符串中的格式說明符可以通過三種方式引用參數(shù):

  • 普通索引
  • 顯式索引
  • 相對索引

普通索引

當(dāng)格式說明符沒有指定參數(shù)索引值作為上面的代碼時,它被稱為普通索引。

在普通索引中,參數(shù)索引由格式字符串中格式說明符的位置確定。

不帶參數(shù)索引的第一個格式說明符的索引為1,它指的是第一個參數(shù)。

對于以下格式字符串,

System.out.printf("%s, %s,  and  %s",  "A",  "B", "C");

第一個%s 的索引為1,第二個%s 的2。

索引為1的第一個“%s"格式指的是第一個參數(shù)“A"。第二個“%s"格式指第二個參數(shù)“B"。

如果在格式字符串中有比格式說明符更多的參數(shù),則將忽略額外的參數(shù)。

將拋出 java.util.MissingFormatArgumentException 如果有比參數(shù)更多的格式說明符。

以下代碼將拋出異常,因?yàn)閰?shù)的數(shù)量少于格式說明符的數(shù)量。

public class Main {
  public static void main(String[] args) {
    System.out.printf("%s, %s,  and  %s",  "A",  "B");
  }
}

上面的代碼生成以下結(jié)果。

Formatter format()方法的最后一個參數(shù)class是一個varargs參數(shù)。 我們還可以將數(shù)組傳遞給varargs參數(shù)。


顯式索引

顯式索引在格式說明符中明確指定了參數(shù)索引。

參數(shù)索引,以 $ 結(jié)尾的整數(shù),在格式說明符中緊跟在%符號之后。

以下代碼使用帶有顯式索引的三個格式說明符:“%1 $ s",“%2 $ s"和“%3 $ s"。

public class Main {
  public static void main(String[] args) {
    System.out.printf("%1$s, %2$s, and %3$s",  "A",  "B", "C");
  }
}

上面的代碼生成以下結(jié)果。

顯式索引可以引用參數(shù)列表中任何順序的參數(shù)。

public class Main {
  public static void main(String[] args) {
    System.out.printf("%3$s, %2$s, and %1$s",  "A",  "B", "C");
  }
}

上面的代碼生成以下結(jié)果。

我們可以使用顯式索引和多次引用相同的參數(shù)不引用格式字符串中的一些參數(shù)。

public class Main {
  public static void main(String[] args) {
    System.out.printf("%3$s, %2$s, and %2$s", "A", "B", "C");
  }
}

上面的代碼生成以下結(jié)果。

相對索引

在相對索引中,格式說明符使用與先前格式說明符使用的參數(shù)相同的參數(shù)。

相對索引不使用參數(shù)索引值。它使用“<" 字符作為格式說明符中的標(biāo)志。

我們不能使用相對索引作為第一個格式說明符,因?yàn)楸仨氂幸粋€先前的格式說明符。

以下代碼使用相對索引:

public class Main {
  public static void main(String[] args) {
    System.out.printf("%1$s, %<s, %<s, %2$s, and %<s",  "A",  "B");
  }
}

上面的代碼生成以下結(jié)果。

可以具有比用于相對索引的格式說明符的數(shù)目少的參數(shù)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號