【问题标题】:String.Split() for a array of string's 2nd value is not saving to new variable字符串第二个值数组的 String.Split() 未保存到新变量
【发布时间】:2019-07-03 02:54:19
【问题描述】:

例如,所有内容都在读取 lines[] 的值,但是当我尝试将其保存在变量中时,它并没有保存第二个值。像 lines[1] 正在保存但 lines[2] 没有保存。

        while ((line = reader.readLine()) != null) {
            lines = line.split("[:,]");

            for (int i = 0; i < lines.length; i++) {
                if(lines.length > 0) {
                    if(lines[0].contains("x")||lines[0].contains("y")) {
                        double x = Double.parseDouble(lines[1]);
                        double y = Double.parseDouble(lines[2]);
                    }

【问题讨论】:

  • 您的输入和预期输出是什么?
  • 为什么要再次在这里发布您的代码?使用要求的信息编辑您的问题
  • 它不保存 y 中的值。从调试中,我可以看到它正在将值保存在 x 中,但是当调试器指针越过 y 时,没有任何内容被保存到其中。它正在回到 while 循环并寻找新行。
  • 您的输入和预期输出是什么? lines[2] 的值是多少你没有代码来打破循环。 xy 也是 if 块的本地对象
  • lines数组的第三个元素。

标签: java regex split


【解决方案1】:

如果我最初初始化 x 和 y 的值,那么 y 将获得该值。我不知道为什么我需要初始化?但我想进一步了解...

包 com.inputOutput;

导入 java.io.*; 导入 java.util.Scanner;

公共类 RealMadrid {

public static void main(String[] args) throws IOException {
    double x=0;
    double y=0;
    BufferedReader reader = new BufferedReader(new FileReader("english.txt"));
    String[] lines = null;

    try {
        String line;
        while ((line= reader.readLine()) != null) {
            lines = line.split("[:,]");

            int i =0;
            if(lines.length>0){
                if(lines[0].contains("x")||lines[0].contains("y")) {
                     x = Double.parseDouble(lines[1]);
                     y = Double.parseDouble(lines[2]);
                }
            }
        }
    } finally {
        reader.close();
    }
}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2018-06-26
    • 2021-07-28
    • 2011-06-22
    • 2018-10-01
    • 1970-01-01
    • 2010-12-07
    相关资源
    最近更新 更多