>
스칼라에서 : 72 개의 숫자 값이 포함 된 문자열을 직접 분리하는 방법이 있습니까? 숫자 데이터 유형의 숫자 ​​값을 가진 9 개의 행과 8 개의 열로 구성된 2 차원 배열로?

  • 답변 # 1

    val input = List.tabulate(72)(_.toString).mkString(";")
    input.split(";").map(_.toInt).grouped(9).toArray
    
    

    변환

    0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71
    
    

    으로

    Array(
      Array(0, 1, 2, 3, 4, 5, 6, 7, 8), 
      Array(9, 10, 11, 12, 13, 14, 15, 16, 17), 
      Array(18, 19, 20, 21, 22, 23, 24, 25, 26), 
      Array(27, 28, 29, 30, 31, 32, 33, 34, 35), 
      Array(36, 37, 38, 39, 40, 41, 42, 43, 44), 
      Array(45, 46, 47, 48, 49, 50, 51, 52, 53), 
      Array(54, 55, 56, 57, 58, 59, 60, 61, 62), 
      Array(63, 64, 65, 66, 67, 68, 69, 70, 71)
    )
    
    

    행/열의 차원을 바꾸려면 9 를 바꾸십시오.  작성자 : 8 .

  • 답변 # 2

    범위 및 그룹화 된 기능 사용

    scala> val a = (0 to 71).map(_.toString).toArray.mkString(";")
    a: String = 0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71
    scala> a.split(";").map(_.toInt).sliding(9,9).toArray
    res269: Array[Array[Int]] = Array(Array(0, 1, 2, 3, 4, 5, 6, 7, 8), Array(9, 10, 11, 12, 13, 14, 15, 16, 17), Array(18, 19, 20, 21, 22, 23, 24, 25, 26), Array(27, 28, 29, 30, 31, 32, 33, 34, 35), Array(36, 37, 38, 39, 40, 41, 42, 43, 44), Array(45, 46, 47, 48, 49, 50, 51, 52, 53), Array(54, 55, 56, 57, 58, 59, 60, 61, 62), Array(63, 64, 65, 66, 67, 68, 69, 70, 71))
    scala>
    
    

관련 자료

  • 이전 sysadmin이 SQL Server Express에 액세스 할 수있는 Windows 사용자 및 그룹을 찾으려면 어떻게합니까?
  • 다음 Julia에서는 REPL에 텍스트 파일을 표시합니다