【问题标题】:I want to write a java code, parse the last number from the URL.Then I need to check if that number is present in a excel. else If present return我想编写一个java代码,解析URL中的最后一个数字。然后我需要检查该数字是否存在于excel中。否则如果存在返回
【发布时间】:2018-09-17 00:44:47
【问题描述】:

我想编写一个 java 代码,它基本上会解析 URL 中的最后一个数字。然后我需要检查该数字是否存在于 Excel 中。如果未找到则显示错误,否则如果存在则返回行名。

说网址:http://foxsd5174:3887/PD/outage/area/v1/device/40122480 从下面的excel我需要知道,“40122480”属于哪个城市或县?

                 City        County     Event Level 
  Device ID     40122480    277136436   268698851

要从 URL 中获取值,我需要使用下面的代码。

请帮帮我。

【问题讨论】:

  • public static void main(final String[] args){ System.out.println(getLastBitFromUrl( "foxsd5174:3887/PD/outage/area/v1/device/…)); }
  • 把代码放在问题里,而不是在cmets里,文件的格式是什么? xls?硅通孔? excel 是一种非常广泛的文件类型
  • 这里没有实际问题。请向我们展示您到目前为止编写的代码,并详细解释阻碍您的具体问题。请注意,有很多关于如何在 Java 中读取 Excel 电子表格的问答、教程等。所以一般的“我该怎么做”最好用谷歌搜索来回答
  • 请阅读“How to Ask”,然后阅读edit您的问题,以提供您遇到的特定问题的minimal reproducible example

标签: java


【解决方案1】:

如果您不知道如何获取网址的最后一个数字,请使用此帖子: How to obtain the last path segment of an uri

要阅读 excel 文件,请使用本教程 https://www.callicoder.com/java-read-excel-file-apache-poi/,它使用 apache poi 库来完成工作。

只需将单元格值与 url 的最后一个数字进行比较即可。

【讨论】:

  • 看我需要去获取几个 URL 的请求。我需要解析 URL 的最后一位并验证该数字是否确实存在于数据库中(截至目前它的 excel)。或验证 JSON 是否是有效响应返回城市或县名 { "etrTimestamp":"04/10/2018 23:45:00", "eventName":"Kenny", "eventType":"Hurricane" , "areaName":"Palm Beach", "areaType":"County", "serviceStatus":{ "additionalInfo":"Area ETR Present", "resultStatusCode":"200", "resultStatusMessage":"SUCCESS" }
【解决方案2】:

根据 URL 末尾的位数,您可以用多种不同的方式对其进行解析。您可以使用正则表达式或子字符串。要将其与 excel 文件进行比较,您可以首先将 excel 文件转换为 csv(它们是兼容的),使用 BufferedReader 和 FileReader 来读取文件。创建一个字符串数组,并使用正则表达式或任何解析方法将您创建的 csv 文件中的逗号分开。然后只需运行一个循环到 EOF 的 while 循环,并使用 string 类型的 equals() 方法检查您解析的字符串是否为“40122480”,并查看您的字符串是否与您刚刚从文件中解析的任何字符串匹配.

已编辑*

我在几分钟内编写的粗略和快速的代码可能对您的解析有所帮助。

String parsedUrl[] = new String[8];
       String url = "http://foxsd5174:3887/PD/outage/area/v1/device/40122480";
       System.out.println(url);
       parsedUrl = url.split("/");
       System.out.println(parsedUrl[8]);

【讨论】:

  • 下面的代码返回我的 URL 最后一位数字。现在在我的 excel 中比较它,并返回行名。 City County Event Level Device ID 40122480 2771 8851 public class smartoutage { public static void main(final String[] args){ System.out.println(getLastBitFromUrl( "goxsd5174:3807/device/40122480?param=true")); } public static String getLastBitFromUrl(final String url) { // return url.replaceFirst("[^?]*/(.*?)(?:\\?.*)","$1);"
【解决方案3】:

我编写了以下代码来获取 URL 的最后一位。

public class smartoutage {
    public static void main(final String[] args){
    System.out.println(getLastBitFromUrl(
    "http://goxsd5174:3807/PD/outage/areaEtr/v1/device/40122480?param=true"));
    }
    public static String getLastBitFromUrl(final String url){
    return url.replaceFirst(".*/([^/?]+).*", "$1");
    }
    }

输出为 40122480 现在我需要查找 40122480 是否存在于 excel 中并返回它所属的行名 市县事件级别 设备ID 40122480 277136436 268698851

【讨论】:

  • 请帮助我完成第二部分。也就是将结果与 excel 进行比较并获取行
猜你喜欢
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 2021-10-24
  • 2011-07-29
  • 2020-02-18
相关资源
最近更新 更多