【问题标题】:Convering String to Int array in java [closed]在java中将String转换为Int数组[关闭]
【发布时间】:2014-08-09 12:54:24
【问题描述】:

我在 java 中有一个“字符串行”变量 当我给

System.out.println(line);

它给了我输出

233 81 335 332 165 56 82 316 123 247 328 348 177 89 86 1 252 228 34 350 116 91 193 106 272
121 56 203 179 259 25 163 101 77 116 135 29 257 254 400 195 192 20 59 270 350 116 92 6 87
22 230 126 207 393 73 399 57 96 93 9 196 172 111 192 234 315 59 35 351 390 239 88 339 145
17 161 330 328 198 47 194 107 231 312 260 118 369 344 114 355 99 117 199 219 5 255 336 124 

上面的输出是 4 个单独的行。

现在我想将此字符串转换为 int 数组,这样整数数组的每个位置都会保存这些数字。 我尝试了 Tokenizing 和解析它,但是当数据非常大接近 200000 行记录时,它给了我一个错误。

有什么建议吗? 请帮忙。

【问题讨论】:

  • 我的建议是尝试自己寻找一些东西。谷歌是一个好的开始。被灌输的答案不会帮助你变得更好。
  • 看起来这是你的作业?
  • 我建议对 String#splitInteger.parseInt 进行一些研究
  • 我尝试对其进行标记然后解析它,但是当这个数据非常大,接近200000条记录时,它会出错
  • 可能是空的String 我猜你可以使用if (!value.trim().isEmpty()) { // Convert to int,其中value 是一个单独的元素

标签: java string int


【解决方案1】:

将此理解为家庭作业问题,而不是给出答案,我会给出一些指示。查找String.split()Integer.parseInt()for 循环。

【讨论】:

    【解决方案2】:

    使用Scanner 类将您的行(String)传递给Scanner 构造函数并使用方法hasNextInt() 进行检查,并使用nextInt() 获取并将其存储到ArrayList<Integer> loop.

    【讨论】:

    • 你知道,这可能是更好的建议之一
    【解决方案3】:

    只是给你一个提示, 初始化一个数组 int, 尝试循环到您的字符串,将其按空格或您想要的分隔符拆分,然后使用解析或将您的字符串转换为 int,以便您可以将其添加到 int 数组中, 然后将该拆分项添加到您的数组中 并打印数组以查看它是否已添加。

    基本循环和数组操作,你会在这里很好。

    【讨论】:

      【解决方案4】:

      您可以将该 String 传递给扫描仪,并为扫描仪读取的每个 int 值,使用 Integer.parseInt() 将该标记解析为一个 int 并将其添加到一个新数组中。

      Scanner scan = new Scanner(yourString);
      ArrayList<Integer> ints = new ArrayList<>();
      
      while (scan.hasNext())
      {
          ints.add(Integer.parseInt(scan.next()));
      }
      

      请注意,如果令牌不是 int,则会引发异常,因此您需要添加一些检查或将其包围在 try-catch...

      ints.toArray() 会将您的 ArrayList 转换为数组,如果您明确要求的话..

      【讨论】:

        猜你喜欢
        • 2011-11-30
        • 2011-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-03
        相关资源
        最近更新 更多