【问题标题】:An exception in splitting [duplicate]拆分异常[重复]
【发布时间】:2016-07-09 11:41:05
【问题描述】:

我试图用“.”分割一个 IP 地址。但是代码正在生成异常。

Exception Message : "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at decimaltobinary.DecimalToBinary.main". 

帮我解决。这是我的代码。

 String[] ipAddresses=IP.split(".");
 String ip1=ipAddresses[0];
 String ip2=ipAddresses[1];
 String ip3=ipAddresses[2];
 String ip4=ipAddresses[3];

【问题讨论】:

  • 你没有包含所有的代码。 IP 定义在哪里?
  • 这意味着你的数组中没有元素。打印分割前IP的原始值。
  • 我觉得你需要逃跑.
  • 我认为你应该使用'.' 而不是".",因为你应该用字符而不是字符串来分割
  • 为什么会有 [scala] 标签?

标签: java arrays


【解决方案1】:

. 是正则表达式中的特殊字符。试试:

IP.split("\\.");

【讨论】:

  • @Fast Snail,实际上是。我的错!
【解决方案2】:

在正则表达式中,标记. 表示匹配任何字符。如果要匹配字符文字.,则需要在正则表达式\.上进行拆分。

这意味着实际的字符串必须代表\.,因此您必须使用.split("\\.")

【讨论】:

    【解决方案3】:

    试试(\\.)String[] ipAddresses=IP.split("\\.") 那会给你

    String[] ipAddresses=IP.split("\\.");
     String ip1=ipAddresses[0];
     String ip2=ipAddresses[1];
     String ip3=ipAddresses[2];
     String ip4=ipAddresses[3];
    

    应该可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多