2017-08-22 70 views
7

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

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

答えて

14

あなたは.toInt()または.toIntOrNull().map { ... }を使用することができます。

val result = strings.map { it.toInt() } 

だけ結果が配列が、リストではありません。パフォーマンスが重視されないコードでは、配列上のリストを使用することが望ましい(the differencesを参照)。

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

1

あなたは拡張子にしている場合、私は、

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

のような単純なものを使用したい:あなたはRandomAccess(のようなArrayListを実装List構造を変換しようとしている場合

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

strings.asInts() 
1

、またはArray)、このバージョンを使用してパフォーマンスを向上させることができます。

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

このバージョンは、ループと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; 
} 
関連する問題