【问题标题】:Java Print Each DB Row In New LineJava 在新行中打印每个 DB 行
【发布时间】:2015-03-12 17:21:10
【问题描述】:

场景 A(硬代码) 字符串项是手动输入的:

String[] arrayOfString = { "-25.87676, 67.78978", "-26.43545, 28.235325"};

    for (String s : arrayOfString)
        System.out.println("Line " + s);

系统输出:

Line    -25.87676, 67.78978
Line    -26.43545, 28.235325

这很好用,因为它在不带引号的情况下在新行中打印每个项目

场景 B(软代码) 从数据库中查询到的字符串项:

String[] arrayOfString = { dataFromDB };

    for (String s : arrayOfString)
        System.out.println("Line " + s);

系统输出:

Line    “-25.87676, 67.78978”, “-26.43545, 28.235325”

这打印到不是我想要的单行,我怎样才能像场景 A 那样打印(每个项目的新行)

仅供参考.. 变量 dataFromDB 的系统输出为: “-25.87676, 67.78978”, “-26.43545, 28.235325”

【问题讨论】:

  • dataFromDB 的类型是什么?
  • 你的数据库像 MongoDB 一样返回 JSON?

标签: java


【解决方案1】:

您的 dataFromDB 变量似乎是一个字符串。您应该使用正则表达式在坐标后的“,”上将其拆分以获取数组。

【讨论】:

  • 我以前从未使用过正则表达式,我该怎么做?
  • 这是来自 oracle 文档的基本教程docs.oracle.com/javase/tutorial/essential/regex。当您从数据库中检索数据时,您可以将其添加到列表中而不是创建字符串吗?
【解决方案2】:

这应该可以 for(String s : arrayOfString.split(",")){ System.out.println(s); }

【讨论】:

    【解决方案3】:

    使用了以下内容: .replaceAll("^\"", "").split("\"?(,|$)(?=(([^\"]\"){2})[^ \"]*$) *\"?");

    String [] arrayOfString = dataFromDB.replaceAll("^\"", "").split("\"?(,|$)(?=(([^\"]*\"){2})*[^\"]*$) *\"?");
    

    疯狂的代码,但它有效,链接: String Tokenizer : split string by comma and ignore comma in double quotes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多