如何将字符串转换为Scala中的整数列表?

时间:2016-07-13 11:51:20

标签: scala

我在Scala中有以下字符串列表,我想将其转换为viewHolder.itemView.setOutlineProvider(null);

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setNullOutlineProvider(View view) {
    view.setOutlineProvider(null);
}

@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, 
    RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, 
    boolean isCurrentlyActive) {

    final View view = viewHolder.itemView;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
        setNullOutlineProvider(view);

    if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
        // do some stuff here
    } else {
          super.onChildDraw(c, recyclerView, viewHolder, 
              dX, dY, actionState, isCurrentlyActive);
    }
}

我希望将其转换为:

List(List(Int))

我怎么能这样做..我试过了:

val listOfLines = ( "1 2 3 6 9", "1 2 4 5 6", "1 2 8 8 4", "2 3 6 5 4", "2 4 3 9 7" )

但是它给了我错误..有什么建议吗?

3 个答案:

答案 0 :(得分:2)

如果你想分割任何空格,你也可以这样做:

listOfLines.map(_.split("\\s+").map(_.toInt).toList)

这样你就不必依赖那里只有\t个字符。

这假设您的输入是

val listOfLines = List( "1  2   3   6   9",
  "1  2   4   5   6",
  "1  2   8   8   4",
  "2  3   6   5   4",
  "2  4   3   9   7" )

与你问题中的元组相反

答案 1 :(得分:1)

最后,答案可以是:)

val list = listOfLines.map(_.split("\t").toList.map(_.toInt))

答案 2 :(得分:1)

如果您在第一次使用Tuple,则需要将其转换为ListlistOfLines.productIterator.toList并且您将获得List[Any],因为Tuple可以包含不同的类型,这就是productIterator返回Iterator[Any]的原因。 现在你可以map而不是foreach,因为foreach会返回Unit。 所以,结果是:

val res = listOfLines.productIterator.toList
  .map{ 
    _.toString.split("\\s+")
     .map(_.toInt)
     .toList
  }