gpt4 book ai didi

java - 将特定输出解析为变量 Java

转载 作者:行者123 更新时间:2023-11-30 09:22:28 25 4
gpt4 key购买 nike

我正在尝试找到在 c7000 HP 机箱上连接和执行命令时解析 jsch 特定输出的最佳方法。

到目前为止,我所做的是编写一个连接到 hp 机箱的程序,执行命令,检索命令的输出并将其从流转换为字符串。

我最终得到这个字符串

Server Blade #1 Information:    Type: Server Blade    Manufacturer: HP    Product Name: ProLiant BL280c G6    Part Number: 507865-B21         System Board Spare Part Number: 531337-001    Serial Number: XZ73616G9Z          UUID: 38926035-5636-5D43-3330-359274423959    Server Name: SERVERONE    Asset Tag: [Unknown]    ROM Version: I25 02/01/2013    CPU 1: Intel(R) Xeon(R) CPU E5520 @ 2.27GHz (4 cores)    CPU 2: Intel(R) Xeon(R) CPU E5520 @ 2.27GHz (4 cores)    Memory: 49152 MB

现在我需要从这个字符串中提取一些信息并将其放入变量/变量中。我试过正则表达式,但似乎没有破解它。我需要的是在我以后可以使用的字符串变量中得到例如产品名称“Proliant BL280c G6”,序列号或其中的任何其他信息也是如此。我不需要的是前面的文本类型:或部件号:。我只需要提取之后的内容即可。

我是 Java 的新手,每天都在学习很多东西,这里的任何人都可以指出我解决这个问题的最佳方法的正确方向吗?

编辑:非常感谢大家的快速回复。我现在对如何解决这个问题有了一些想法。最大的帮助是向我展示如何正确使用正则表达式。我错过的是排除不需要的弦乐片段的可能性。 (?<=Product\sName:).

最佳答案

String delims = "\n";   //this is the identifier of a line change in java
String[] lines = result.split(delims);

for (int i=0;i<lines.length;i++)
{
System.out.println(lines[i]);
}

此代码将保存(并打印)该字符串中的行(假设您发布的内容保存为 java 字符串)。

你有几种方法可以做到这一点。当然,它们将是更合理的方法(正则表达式、解析器……),但您可以这样做来检查字符串是否包含子字符串:

 str1.toLowerCase().contains(str2.toLowerCase())

因此,例如,如果您想知道 lines[i] 中的一行是否包含单词 Product Name,只需执行以下操作:

 subS = "Product Name";
if (lines[x].toLowerCase().contains(subS.toLowerCase()));
//x being a number between 0 and the total of lines

如前所述,这是一种非常原始的方法,但它会起作用。

关于java - 将特定输出解析为变量 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com