欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android?`%d`?與?`1$%d`?格式化的區(qū)別解析

 更新時(shí)間:2025年03月12日 10:34:14   作者:jiet_h  
本文詳細(xì)解析了Android開發(fā)中`%d`和`1$%d`格式化占位符的區(qū)別,并通過Kotlin代碼示例幫助理解,`%d`按順序填充參數(shù),而`1$%d`按指定索引填充參數(shù),后者在多語言場景下更靈活,感興趣的朋友一起看看吧

在 Android 開發(fā)中,我們經(jīng)常需要對字符串進(jìn)行格式化處理,比如動態(tài)填充數(shù)字、日期、字符等。
其中,%d1$%d 都是格式化占位符,但它們在使用上有一些不同。
本文將詳細(xì)解析這兩者的區(qū)別,并結(jié)合 Kotlin 代碼示例幫助你理解。

1. %d1$%d 的基本概念

  • %d:表示整數(shù)占位符,按照傳入?yún)?shù)的順序依次填充。
  • 1$%d:表示帶索引的占位符,1$ 代表第一個參數(shù),2$ 代表第二個,以此類推。

2. 代碼示例

我們直接用 Kotlin 代碼來演示兩者的區(qū)別。

fun main() {
    val format1 = "%d 年 %d 月 %d 日"
    val format2 = "%1$d 年 %2$d 月 %3$d 日"
    val year = 2025
    val month = 3
    val day = 11
    val result1 = String.format(format1, year, month, day)
    val result2 = String.format(format2, year, month, day)
    println("使用 %d 格式化: $result1")
    println("使用 1$%d 格式化: $result2")
}

輸出結(jié)果:

使用 %d 格式化: 2025 年 3 月 11 日
使用 1$%d 格式化: 2025 年 3 月 11 日

3. 區(qū)別解析

3.1 %d 的工作原理

  • 直接按照傳入的參數(shù)順序進(jìn)行替換。
  • 如果參數(shù)順序變了,結(jié)果也會相應(yīng)改變。

3.2 1$%d 的工作原理

  • 1$ 明確指定了參數(shù)的位置,即便參數(shù)順序變動,引用的仍然是指定位置的值。
  • 適用于多語言(國際化)情況,可以根據(jù)語言調(diào)整順序,而不用改變代碼。

4. 為什么需要 1$%d

在多語言(Localization)場景下,不同語言的語序可能不同,比如:

  • 中文:2025 年 3 月 11 日
  • 英語:March 11, 2025

如果我們只用 %d,就需要改動代碼傳參順序,而 1$%d 允許我們調(diào)整字符串資源中的格式,而無需改變代碼。

5. 在 Android 開發(fā)中的使用

在 Android 的 strings.xml 中,我們通常這樣定義格式化字符串:

<string name="date_format">%1$d 年 %2$d 月 %3$d 日</string>

然后在代碼中使用:

val formattedDate = context.getString(R.string.date_format, 2025, 3, 11)
println(formattedDate) // 2025 年 3 月 11 日
  • 6. 總結(jié)
  • %d 適用于簡單的格式化,不涉及參數(shù)順序調(diào)整。
  • 1$%d 適用于國際化(i18n)等需要調(diào)整參數(shù)順序的場景。
  • 在 Android 開發(fā)中,推薦在 strings.xml 里使用 1$%d,確保不同語言的兼容性。

這樣在適配不同語言時(shí),只需要修改 strings.xml,而不需要調(diào)整代碼的參數(shù)傳遞順序。

android 字符串%s、%1$s、%d、%1$d的使用

    %1$s表示替換的為String類型

    %1$d表示替換的為int類型

    數(shù)字表示替換字符串中要替換的位置,若一個字符串要替換兩個int類型,在替換位置分別寫%1$d和%2$d.

    %s 、%d為縮寫方式,只替換一個位置,可以這么寫

    替換方式

     strings.xml中定義

<string name="remove_family_sure">確定要刪除親友‘%s'嗎?</string>

    在類中調(diào)用

String.format(mActivity.getResources().getString(R.string.remove_family_sure),"張三"))

輸出結(jié)果就會拼接上。

到此這篇關(guān)于Android `%d` 與 `1$%d` 格式化的區(qū)別的文章就介紹到這了,更多相關(guān)Android `%d` `1$%d` 格式化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android自定義View 實(shí)現(xiàn)鬧鐘喚起播放鬧鐘鈴聲功能

    Android自定義View 實(shí)現(xiàn)鬧鐘喚起播放鬧鐘鈴聲功能

    這篇文章主要介紹了Android自定義View 實(shí)現(xiàn)鬧鐘喚起播放鬧鐘鈴聲的效果,本文通過實(shí)例代碼給大家詳解,需要的朋友可以參考下
    2016-12-12
  • Android編程實(shí)現(xiàn)AIDL(跨進(jìn)程通信)的方法詳解

    Android編程實(shí)現(xiàn)AIDL(跨進(jìn)程通信)的方法詳解

    這篇文章主要介紹了Android編程實(shí)現(xiàn)AIDL(跨進(jìn)程通信)的方法,結(jié)合實(shí)例形式詳細(xì)分析了Android實(shí)現(xiàn)AIDL(跨進(jìn)程通信)的原理、具體流程與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-06-06
  • 規(guī)避Android開發(fā)中內(nèi)存泄漏陷阱的解決方案

    規(guī)避Android開發(fā)中內(nèi)存泄漏陷阱的解決方案

    在Android開發(fā)中,內(nèi)存泄漏是一個常見但容易被忽視的問題,它會導(dǎo)致應(yīng)用程序占用過多的內(nèi)存資源,最終影響應(yīng)用的性能和用戶體驗(yàn),本文將深入探討Android常見的內(nèi)存泄漏問題,并提供優(yōu)化指南,需要的朋友可以參考下
    2024-05-05
  • Android初學(xué)者必須知道的10個技術(shù)

    Android初學(xué)者必須知道的10個技術(shù)

    本篇內(nèi)容給大家整理10個作為Android初學(xué)者必須要了解和會用的技術(shù)以及詳細(xì)代碼分析,需要的朋友收藏下慢慢學(xué)習(xí)吧。
    2017-12-12
  • Android Parcelable接口使用方法詳解

    Android Parcelable接口使用方法詳解

    這篇文章主要介紹了 Android Parcelable接口使用方法詳解的相關(guān)資料,實(shí)現(xiàn)Parcelable就是為了進(jìn)行序列化,需要的朋友可以參考下
    2017-08-08
  • 一文徹底搞懂Kotlin中的協(xié)程

    一文徹底搞懂Kotlin中的協(xié)程

    這篇文章主要給大家介紹了Kotlin中協(xié)程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Android利用ShaderMask實(shí)現(xiàn)花里胡哨的文字特效

    Android利用ShaderMask實(shí)現(xiàn)花里胡哨的文字特效

    我們的?App?大部分時(shí)候的文字都是一種顏色,實(shí)際上,文字的顏色也可以多姿多彩。我們今天就來介紹一個能夠輕松實(shí)現(xiàn)文字漸變色的組件?——?ShaderMask,感興趣的可以了解一下
    2022-12-12
  • Android布局之RelativeLayout相對布局

    Android布局之RelativeLayout相對布局

    RelativeLayout是相對布局控件:以控件之間相對位置或相對父容器位置進(jìn)行排列,下面通過本文給大家介紹Android布局之RelativeLayout相對布局,涉及到android relativelayout相對布局相關(guān)知識,對android relativelayout相對布局相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Android整理好的圖片壓縮工具類

    Android整理好的圖片壓縮工具類

    今天小編就為大家分享一篇關(guān)于Android整理好的圖片壓縮工具類,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • android studio的Handler簡單實(shí)例代碼

    android studio的Handler簡單實(shí)例代碼

    今天通過實(shí)例代碼給大家介紹android studio的Handler簡單用法,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-10-10

最新評論