次のコードを実行しています。
def takeN(s : String, n : Int): String = {
var j = 1
var o = s.split("")
if(n != 0){
var arr = new Array[Char](n)
}
while(j <= n){
arr(j) = o(j)
j += 1
}
val ml = List.fromArray(arr)
var newS = ml.mkString("")
newS
}
このコードをこの takeN("abcd",2) でテストすると、得られる答えは次のとおりです。
nullab
http://www.simplyscala.com/でこのコードを実行すると、すべてが機能しますが、自宅の PC で試してみるとエラーが発生するため、次のように変更しました。
def takeN(s : String, n : Int): String = {
var j = 1
var o = s.split("")
var arr = new Array[Char](n)
while(j <= n){
arr(j) = o(j)
j += 1
}
val ml = List.fromArray(arr)
var newS = ml.mkString("")
newS
}
次に、次のエラーが表示されます。
error: type mismatch;
found : java.lang.String
required: Char
arr(j) = o(j)
これを修正する方法がわかりません。なぜscalaはとても難しいのですか??