String.format does not support no locale #KT-22932
This commit is contained in:
@@ -15,6 +15,7 @@ import java.nio.charset.Charset
|
|||||||
import java.nio.charset.CodingErrorAction
|
import java.nio.charset.CodingErrorAction
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
|
import kotlin.internal.LowPriorityInOverloadResolution
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -288,17 +289,38 @@ public inline fun String.Companion.format(format: String, vararg args: Any?): St
|
|||||||
* Uses this string as a format string and returns a string obtained by substituting the specified arguments,
|
* Uses this string as a format string and returns a string obtained by substituting the specified arguments,
|
||||||
* using the specified locale.
|
* using the specified locale.
|
||||||
*/
|
*/
|
||||||
|
@LowPriorityInOverloadResolution
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public inline fun String.format(locale: Locale, vararg args: Any?): String = java.lang.String.format(locale, this, *args)
|
public inline fun String.format(locale: Locale, vararg args: Any?): String = java.lang.String.format(locale, this, *args)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses this string as a format string and returns a string obtained by substituting the specified arguments,
|
||||||
|
* using the specified locale. If [locale] is `null` then no localization is applied.
|
||||||
|
*/
|
||||||
|
@SinceKotlin("1.4")
|
||||||
|
@JvmName("formatNullable")
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun String.format(locale: Locale?, vararg args: Any?): String = java.lang.String.format(locale, this, *args)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uses the provided [format] as a format string and returns a string obtained by substituting the specified arguments,
|
* Uses the provided [format] as a format string and returns a string obtained by substituting the specified arguments,
|
||||||
* using the specified locale.
|
* using the specified locale.
|
||||||
*/
|
*/
|
||||||
|
@LowPriorityInOverloadResolution
|
||||||
@kotlin.internal.InlineOnly
|
@kotlin.internal.InlineOnly
|
||||||
public inline fun String.Companion.format(locale: Locale, format: String, vararg args: Any?): String =
|
public inline fun String.Companion.format(locale: Locale, format: String, vararg args: Any?): String =
|
||||||
java.lang.String.format(locale, format, *args)
|
java.lang.String.format(locale, format, *args)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses the provided [format] as a format string and returns a string obtained by substituting the specified arguments,
|
||||||
|
* using the specified locale. If [locale] is `null` then no localization is applied.
|
||||||
|
*/
|
||||||
|
@SinceKotlin("1.4")
|
||||||
|
@JvmName("formatNullable")
|
||||||
|
@kotlin.internal.InlineOnly
|
||||||
|
public inline fun String.Companion.format(locale: Locale?, format: String, vararg args: Any?): String =
|
||||||
|
java.lang.String.format(locale, format, *args)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Splits this char sequence around matches of the given regular expression.
|
* Splits this char sequence around matches of the given regular expression.
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package test
|
package test
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
public actual fun assertTypeEquals(expected: Any?, actual: Any?) {
|
public actual fun assertTypeEquals(expected: Any?, actual: Any?) {
|
||||||
@@ -26,4 +27,7 @@ internal actual inline fun testOnNonJvm6And7(f: () -> Unit) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public actual fun testOnJvm(action: () -> Unit) = action()
|
public actual fun testOnJvm(action: () -> Unit) = action()
|
||||||
public actual fun testOnJs(action: () -> Unit) {}
|
public actual fun testOnJs(action: () -> Unit) {}
|
||||||
|
|
||||||
|
@Suppress("HasPlatformType", "UNCHECKED_CAST")
|
||||||
|
public fun <T> platformNull() = Collections.singletonList(null as T).first()
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
package test.text
|
package test.text
|
||||||
|
|
||||||
import test.collections.assertArrayNotSameButEquals
|
import test.collections.assertArrayNotSameButEquals
|
||||||
|
import test.platformNull
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|
||||||
@@ -41,9 +42,14 @@ class StringJVMTest {
|
|||||||
assertEquals("1,234,567.890", "%,.3f".format(Locale.ENGLISH, 1234567.890))
|
assertEquals("1,234,567.890", "%,.3f".format(Locale.ENGLISH, 1234567.890))
|
||||||
assertEquals("1.234.567,890", "%,.3f".format(Locale.GERMAN, 1234567.890))
|
assertEquals("1.234.567,890", "%,.3f".format(Locale.GERMAN, 1234567.890))
|
||||||
assertEquals("1 234 567,890", "%,.3f".format(Locale("fr"), 1234567.890))
|
assertEquals("1 234 567,890", "%,.3f".format(Locale("fr"), 1234567.890))
|
||||||
|
assertEquals("1,234,567.890", "%,.3f".format(null, 1234567.890))
|
||||||
|
assertEquals("1,234,567.890", "%,.3f".format(platformNull<Locale>(), 1234567.890))
|
||||||
|
|
||||||
assertEquals("1,234,567.890", String.format(Locale.ENGLISH, "%,.3f", 1234567.890))
|
assertEquals("1,234,567.890", String.format(Locale.ENGLISH, "%,.3f", 1234567.890))
|
||||||
assertEquals("1.234.567,890", String.format(Locale.GERMAN, "%,.3f", 1234567.890))
|
assertEquals("1.234.567,890", String.format(Locale.GERMAN, "%,.3f", 1234567.890))
|
||||||
assertEquals("1 234 567,890", String.format(Locale("fr"), "%,.3f", 1234567.890))
|
assertEquals("1 234 567,890", String.format(Locale("fr"), "%,.3f", 1234567.890))
|
||||||
|
assertEquals("1,234,567.890", String.format(null, "%,.3f", 1234567.890))
|
||||||
|
assertEquals("1,234,567.890", String.format(platformNull<Locale>(), "%,.3f", 1234567.890))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun toByteArrayEncodings() {
|
@Test fun toByteArrayEncodings() {
|
||||||
|
|||||||
Reference in New Issue
Block a user