簡體   English   中英

僅獲取一個字符的貨幣符號(例如 $、₹ 等)(區域無關緊要) android kotlin

[英]Get Currency symbol of only one character (e.g $,₹, etc) (Locale doesn't matter) android kotlin

我有貨幣代碼(例如 USD、INR 等...)。 我只想獲得這些代碼中一個字母的符號(例如 $、₹ 等)。 我試圖找到許多這樣的解決方案,但它對我不起作用。 我正在使用如下代碼

var pound = Currency.getInstance("GBP");
var symbol = pound.getSymbol();

但它會返回類似(Rs.、US$、AU$ 等)的符號。 如上所述,我只想獲得一個字符符號。 我知道符號取決於它們的語言環境,但我想獲得獨立於它們的語言環境的符號。

嘗試在 getSymbol() 中調用默認Locale ,例如getSymbol(Locale.getDefault(Locale.Category.DISPLAY))檢查下面的代碼

Currency pound = Currency.getInstance("GBP");
pound.getSymbol(Locale.getDefault(Locale.Category.DISPLAY));

在Kotlin快速回答你的問題:

var pound = Currency.getInstance("GBP");
val symbol = pound.symbol
println(symbol) // prints £

如果有用,我粘貼我的解決方案以獲取貨幣代碼(即:EUR)和貨幣符號(即 €)和:

val locale = Locale.getDefault()
val numberFormat = NumberFormat.getCurrencyInstance(locale)
println(numberFormat.currency)  // on my device in Italy prints: EUR

val symbol = numberFormat.currency?.symbol
println(symbol) // on my device in Italy prints: €

這對我來說很好用

import android.os.Build

import android.support.v7.app.AppCompatActivity
import android.os.Bundle

import kotlinx.android.synthetic.main.activity_main.*
import java.util.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        count()
    }

    fun count () {
        val pound = Currency.getInstance("USD")
        var str:String
        str = if(Build.VERSION.SDK_INT >=24) pound.getSymbol(Locale.getDefault(Locale.Category.DISPLAY))
        else pound.getSymbol(resources.configuration.locale)
        tvText.text = str
    }


}

我只是創建了這個 kotlin 擴展函數,如果有貨幣符號,它會隔離貨幣符號,如果沒有,則使用提供的符號。

// Supply the Currency Symbol, e.g. US$, would return $ and IDR would return IDR
fun String.isolateCurrencySymbol(): String{
    for (char in this){
        if (char !in CharRange('A', 'Z')){
            return char.toString()
        }
    }
    return this
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM