Я сталкиваюсь со странной ошибкой при вызове toIndexedSequence на итераторе. Длина итератора равна 81, но длина результирующей indexedSequence равна 257. Когда я печатаю indexedSequence, я получаю два вектора. Первый - правильная длина 81, а второй - 257. Я не уверен, почему он печатает два вектора. Второй, кажется, добавляет нули между моими элементами.
def apply(source: scala.io.Source): Sudoku = {
val vec = for( x <- source.toVector if !isWhiteSpace(x) ) yield { if( x>='1' && x<='9') x - 48 else 0 }
println( vec )
new Sudoku(vec)
}
def isWhiteSpace( char: Char ):Boolean = char == (' ' | '\n')
ouput:
Vector(9, 0, 0, 0, 8, 3, 0, 1, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 4, 0, 0, 0, 0, 7, 0, 0, 6, 0, 5, 0, 0, 0, 1, 0, 4, 0, 3, 0, 0, 0, 6, 0, 9, 0, 0, 7, 0, 0, 0, 0, 9, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 4, 0, 5, 2, 0, 0, 0, 6)
Vector(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0)