web-dev-qa-db-ja.com

Kotlinで文字列配列をInt配列に変換する方法は?

Kotlinには多くの速記と興味深い機能があります。ですから、文字列の配列を整数の配列に変換するための高速で短い方法があるのだろうかと思います。 Pythonのこのコードに似ています:

results = [int(i) for i in results]
15
saidfagan

_.map { ... }_.toInt() または .toIntOrNull() と組み合わせて使用​​できます。

_val result = strings.map { it.toInt() }
_

結果のみが配列ではなくリストです。パフォーマンスが重要でないコードでは、配列よりもリストを使用することをお勧めします。 違い を参照してください。

配列が必要な場合は、 .toTypedArray() または .toIntArray() を追加します。

37
hotkey

Listを実装するRandomAccess構造体(ArrayListArrayなど)を変換しようとしている場合、このバージョンを使用してパフォーマンスを向上できます。

IntArray(strings.size) { strings[it].toInt() }

このバージョンは、基本的なforループとint[]

int size = strings.size();
int[] result = new int[size];
int index = 0;

for(int newLength = result.length; index < newLength; ++index) {
    String numberRaw = strings.get(index);
    int parsedNumber = Integer.parseInt(numberRaw);
    result[index] = parsedNumber;
}
2
Yoav Sternberg

私は次のようなシンプルなものを使用します

val strings = arrayOf("1", "2", "3")
val ints = ints.map { it.toInt() }.toTypedArray()

または、拡張機能を使用している場合:

fun Array<String>.asInts() = this.map { it.toInt() }.toTypedArray()

strings.asInts()
1
s1m0nw1