Tương đương với Kotlin của Chuỗi Java [] là gì?


163

Tôi thấy rằng Kotlin có ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray, tương đương vớibyte[], short[], int[],char[], double[], float[] Java.

Bây giờ tôi đang tự hỏi, có bất kỳ StringArraytương đương với Java String[]?


7
typealias StringArray = Array<String>;)
marstran

Câu trả lời:


224

Không có trường hợp đặc biệt cho String, vì Stringlà một loại tham chiếu thông thường trên JVM, trái ngược với Java nguyên thủy ( int, double, ...) - lưu trữ chúng trong một tài liệu tham khảo Array<T>cần đấm bốc họ thành các đối tượng như IntegerDouble . Mục đích của các mảng chuyên dụng như IntArraytrong Kotlin là lưu trữ các nguyên thủy không có hộp, loại bỏ quyền anh và bỏ hộp trên không (giống như Java int[]thay vì Integer[]).

Bạn có thể sử dụng Array<String>(và Array<String?>cho nullables), tương đương với String[]trong Java:

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

Xem thêm: Mảng trong tài liệu tham khảo ngôn ngữ


18

sử dụng mảngOf , mảngOfNulls , blankArray

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

16

Để tạo một sản phẩm nào Array of Strings trong Kotlin, bạn nên sử dụng một trong sáu cách tiếp cận sau:

Cách tiếp cận đầu tiên:

val empty = arrayOf<String>()

Cách tiếp cận thứ hai:

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

Cách tiếp cận thứ ba:

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

Cách tiếp cận thứ tư:

val empty = arrayOfNulls<String>(3)

Cách tiếp cận thứ năm:

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

Cách tiếp cận thứ sáu:

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

9

Những kiểu đó ở đó để bạn có thể tạo các mảng của các kiểu nguyên thủy, chứ không phải các kiểu được đóng hộp. Do String không phải là nguyên thủy trong Java, nên bạn chỉ có thể sử dụng Array<String>trong Kotlin tương đương với Java String[].


5

Đối với Stringsvà các loại khác, bạn chỉ cần sử dụng Array<*>. Nguyên nhânIntArray và những người khác tồn tại là để ngăn chặn autoboxing.

Vì vậy, int[]liên quan đến IntArraynơi Integer[]liên quan đến Array<Int>.


1

Một số cách phổ biến để tạo mảng String là

  1. var mảng = Mảng (5) {""}

Điều này sẽ tạo ra một mảng gồm 5 chuỗi với các giá trị ban đầu là chuỗi rỗng.

  1. var Array = ArrayOfNulls <String?>(5)

Điều này sẽ tạo ra một mảng có kích thước 5 với các giá trị ban đầu là null. Bạn có thể sử dụng dữ liệu Chuỗi để sửa đổi mảng.

  1. var Array = ArrayOf ("zero", "one", "hai", "ba")

Khi bạn đã biết nội dung của mảng rồi thì bạn có thể khởi tạo mảng trực tiếp.

  1. Có một cách dễ dàng để tạo ra một chuỗi các chuỗi đa chiều là tốt.

    var matrix = Mảng (5) {Mảng (6) {""}}

    Đây là cách bạn có thể tạo một ma trận có 5 hàng và 6 cột với các giá trị ban đầu của chuỗi rỗng.


0

Ví dụ này hoạt động hoàn hảo trong Android

Trong kotlin bạn có thể sử dụng biểu thức lambda cho việc này. Định nghĩa của Trình xây dựng mảng Kotlin là:

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

Mà đánh giá:

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

Hoặc là:

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

Trong ví dụ này, định nghĩa trường là:

private var skillsSummaryDetailLinesArray: Array<String>? = null

Hi vọng điêu nay co ich


0

bạn cũng có thể sử dụng:

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

ví dụ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.