我在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" )
但是它给了我错误..有什么建议吗?
答案 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
,则需要将其转换为List
:
listOfLines.productIterator.toList
并且您将获得List[Any]
,因为Tuple
可以包含不同的类型,这就是productIterator
返回Iterator[Any]
的原因。
现在你可以map
而不是foreach
,因为foreach
会返回Unit
。
所以,结果是:
val res = listOfLines.productIterator.toList
.map{
_.toString.split("\\s+")
.map(_.toInt)
.toList
}