将二进制字符串转换为整数时,Scala中字符串之间的差异

林登

我想将0和1的列表转换为整数时遇到问题。

scala> val bar=List('0','1','1').toString
bar: String = List(0, 1, 1)

scala> val foo="011"
foo: String = 011

scala> Integer.parseInt(foo,2)
res1: Int = 3

scala> Integer.parseInt(bar,2)
java.lang.NumberFormatException: For input string: "List(0, 1, 1)"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:580)
        at .<init>(<console>:9)
        at .<clinit>(<console>)
        at .<init>(<console>:7)
        at .<clinit>(<console>)
        at $print(<console>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:734)
        at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:983)
        at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:573)
        at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:604)
        at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:568)
        at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:760)
        at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:805)
        at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:717)
        at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:581)
        at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:588)
        at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:591)
        at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:882)
        at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:837)
        at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:837)
        at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
        at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:837)
        at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:904)
        at xsbt.ConsoleInterface.run(ConsoleInterface.scala:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101)
        at sbt.compiler.AnalyzingCompiler.console(AnalyzingCompiler.scala:76)
        at sbt.Console.sbt$Console$$console0$1(Console.scala:22)
        at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:23)
        at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23)
        at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:23)
        at sbt.Logger$$anon$4.apply(Logger.scala:85)
        at sbt.TrapExit$App.run(TrapExit.scala:248)
        at java.lang.Thread.run(Thread.java:745)

解析功能适用于“ 011”,但当等效列表转换为字符串时无效。如何将二进制列表转换为整数?

纳撒尼尔·福特(Nathaniel Ford)

调用toString实际上会为您提供一个描述字符串,List不是仅由List元素组成的实际String。您想要mkString(在工作表中):

val a: String = List("0","1","1").toString
a  // res0: String = List(0, 1, 1)
val b: String = List("0","1","1").mkString
b  // res1: String = 011
Integer.parseInt(b, 2)  // res2: Int = 3

每当您看到toString它提供被调用对象的人类可读版本时,都会准确描述该对象是什么。在这种情况下,您需要处理机器可读的版本Integer.parseInt()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python 将二进制字符串转换为二进制整数

来自分类Dev

在Python中,尝试将整数转换为字符并放入二进制“字符串”

来自分类Dev

在Python中,尝试将整数转换为字符并放入二进制“字符串”

来自分类Dev

将字符串中的十进制转换为二进制时出错

来自分类Dev

将二进制字符串转换为JavaScript中的字符串

来自分类Dev

将二进制字符串转换为JavaScript中的字符串

来自分类Dev

将二进制字符串转换为JavaScript中的字符串

来自分类Dev

将二进制字符串转换为JavaScript中的字符串

来自分类Dev

将字符串转换为二进制?

来自分类Dev

将二进制转换为字符串

来自分类Dev

将字符串转换为二进制?

来自分类Dev

将字符串二进制转换为整数十进制

来自分类Dev

将十六进制字符串转换为二进制字符串

来自分类Dev

将二进制字符串转换为二进制

来自分类Dev

将二进制字符串转换为二进制

来自分类Dev

将二进制字符串转换为二进制补码

来自分类Dev

将二进制字符串(ASCII)转换为二进制文件

来自分类Dev

将二进制字符串转换为十进制时结果错误

来自分类Dev

将整数转换为零填充的二进制字符串

来自分类Dev

将整数转换为带有前导零的二进制字符串

来自分类Dev

使用'atoi()'将二进制字符串转换为整数

来自分类Dev

将字符串二进制转换为整数

来自分类Dev

将整数转换为带符号的2的补码二进制字符串

来自分类Dev

将整数转换为带有前导零的二进制字符串

来自分类Dev

将二进制格式的字符串转换为整数

来自分类Dev

将二进制字符串转换为整数

来自分类Dev

将二进制字符串转换为ASCII字符串(C ++)

来自分类Dev

将大量二进制输入字符串转换为字符串C

来自分类Dev

Rust中是否有任何东西可以将二进制字符串转换为整数?

Related 相关文章

  1. 1

    Python 将二进制字符串转换为二进制整数

  2. 2

    在Python中,尝试将整数转换为字符并放入二进制“字符串”

  3. 3

    在Python中,尝试将整数转换为字符并放入二进制“字符串”

  4. 4

    将字符串中的十进制转换为二进制时出错

  5. 5

    将二进制字符串转换为JavaScript中的字符串

  6. 6

    将二进制字符串转换为JavaScript中的字符串

  7. 7

    将二进制字符串转换为JavaScript中的字符串

  8. 8

    将二进制字符串转换为JavaScript中的字符串

  9. 9

    将字符串转换为二进制?

  10. 10

    将二进制转换为字符串

  11. 11

    将字符串转换为二进制?

  12. 12

    将字符串二进制转换为整数十进制

  13. 13

    将十六进制字符串转换为二进制字符串

  14. 14

    将二进制字符串转换为二进制

  15. 15

    将二进制字符串转换为二进制

  16. 16

    将二进制字符串转换为二进制补码

  17. 17

    将二进制字符串(ASCII)转换为二进制文件

  18. 18

    将二进制字符串转换为十进制时结果错误

  19. 19

    将整数转换为零填充的二进制字符串

  20. 20

    将整数转换为带有前导零的二进制字符串

  21. 21

    使用'atoi()'将二进制字符串转换为整数

  22. 22

    将字符串二进制转换为整数

  23. 23

    将整数转换为带符号的2的补码二进制字符串

  24. 24

    将整数转换为带有前导零的二进制字符串

  25. 25

    将二进制格式的字符串转换为整数

  26. 26

    将二进制字符串转换为整数

  27. 27

    将二进制字符串转换为ASCII字符串(C ++)

  28. 28

    将大量二进制输入字符串转换为字符串C

  29. 29

    Rust中是否有任何东西可以将二进制字符串转换为整数?

热门标签

归档