web-dev-qa-db-ja.com

KotlinがJavaのString []に相当するものは何ですか?

KotlinにはByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArrayがあることがわかります。これは、それに応じてJavaのbyte[], short[], int[],char[], double[], float[]と同等です。

今、私は思っています、JavaのString[]と同等のStringArrayはありますか?

103
chancyWu

Javaプリミティブ(StringString、...) - とは対照的に、intはJVM上の通常の参照型であるため、doubleには特別な場合はありません。 Array<T> は、 を必要とし、それらをIntegerおよびDouble のようなオブジェクトにボックス化します。 Kotlinの IntArray のような特殊な配列の目的は、ボックス化されていないプリミティブを格納し、ボックス化とボックス化解除のオーバーヘッドをなくすことです(int[]ではなくJava Integer[]と同じ)。

JavaのArray<String>と同等のArray<String?>(およびnull許容値の場合はString[])を使用できます。

val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")

言語リファレンスの 配列

155
hotkey

arrayOfarrayOfNullsを使用してください。 emptyArray

var colors_1: Array<String> = arrayOf("green", "red", "blue")
var colors_2: Array<String?> = arrayOfNulls(3)
var colors_3: Array<String> = emptyArray()
9
Dan Alboteanu

これらの型は、ボックス型ではなくプリミティブの配列を作成できるようにあります。 StringはJavaのプリミティブではないので、KotlinではJavaのArray<String>と同等のものとしてString[]を使用することができます。

7
zsmb13

Stringsおよびその他の型の場合は、Array<*>を使用するだけです。 IntArrayなどが存在する理由は、オートボクシングを防ぐためです。

したがってint[]IntArrayに関連し、Integer[]Array<Int>に関連します。

3
nhaarman

Kotlinで空のArray of Stringsを作成するには、以下の6つの方法のいずれかを使用する必要があります。

最初のアプローチ:

val empty = arrayOf<String>()

第二のアプローチ:

val empty = arrayOf("","","")

第三のアプローチ:

val empty = Array<String?>(3) { null }

第四のアプローチ:

val empty = arrayOfNulls<String>(3)

第五のアプローチ:

val empty = Array<String>(3) { "it = $it" }

第六のアプローチ:

val empty = Array<String>(0, { _ -> "" })
3
ARGeo

あなたも使うことができます:

val frases = arrayOf("texto01","texto02 ","anotherText","and ")

例えば。

0
João Arthur

この例はAndroidでも完璧に動作します

Kotlinではラムダ式を使うことができます。 Kotlin Array Constructorの定義は次のとおりです。

Array(size: Int, init: (Int) -> T)

評価は次のとおりです。

skillsSummaryDetailLinesArray = Array(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

または

skillsSummaryDetailLinesArray = Array<String>(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

この例では、フィールド定義は次のとおりです。

private var skillsSummaryDetailLinesArray: Array<String>? = null

お役に立てれば

0
user2288580