Java 如何在文件中选择字符串after=运算符?
我有一个包含以下文本的文件:Java 如何在文件中选择字符串after=运算符?,java,Java,我有一个包含以下文本的文件: CompanyName=IBM Name=User1234 CompanyName=Google 如何检查文本文件中是否存在文本“CompanyName”,如果存在,则在=operator?之后选择一个字符串?。所以上面文件中的文本应该输出IBM和Google while ((line = br.readLine()) != null) { System.out.println(line); }
CompanyName=IBM
Name=User1234
CompanyName=Google
如何检查文本文件中是否存在文本“CompanyName”,如果存在,则在=operator?之后选择一个字符串?。所以上面文件中的文本应该输出IBM和Google
while ((line = br.readLine()) != null) {
System.out.println(line);
}
您可以使用
java.util.Properties
Properties properties = new Properties();
properties.load(new InputStreamReader
(new FileInputStream("myprops.properties"), StandardCharsets.UTF_8));
String property = properties.getProperty("CompanyName");
是这样的吗
while ((line = br.readLine()) != null) {
System.out.println(line);
if(line.contains("CompanyName"))
{
String[] splits = line.split("=");
String desired = splits[1]; // second position in the string array.
}
}
编辑:在同时获取其他字段时添加更多功能
while ((line = br.readLine()) != null)
{
System.out.println(line);
String compName = "";
String name = "";
if(line.contains("CompanyName"))
{
String[] splits2 = line.split("=");
compName = splits2[1]; // second position in the string array.
if((line = br.readLine()) != null)
{
String[] splits = line.split("=");
name = splits[1];
}
}
}
以下是您如何做到这一点:
function findValueOfAttr(String attr, br) {
while ((line = br.readLine()) != null) {
if (line.indexOf(attr) == 0)
return line.subString(line.indexOf("=")+1);
}
return false;
}
有几个选项:A)正则表达式;b) indexOf和substring…您需要读取所有行(或逐行)并进行搜索比较。我建议使用
String result=line.split(“=”,2)[1]代码>以获得第二部分。@JonSkeet是否可以获得一个小示例?不,您应该接受这些提示并亲自尝试。目前你没有表现出任何努力-没有迹象表明你已经尝试了什么,出了什么问题,等等。你能解释一下IF循环吗?这行(line.indexOf(attr)==0)是什么意思?在哪里检查CompanyName文本是否等于?假设属性为“CompanyName”。然后if循环将检查字符串“companyName”在当时的位置。如果它位于位置0(表示行的开头),则该属性存在。接下来,为了得到这个值,我得到了等号的位置,加上1,然后取行的其余部分并返回它。我有一个后续问题。假设我这次在上面的if循环之后添加了另一个if循环来检查ProductCode文本。是否有一种方法可以将第一个if循环的输出与第二个if循环的输出结合起来,因此结果应该是:IBM 1111(IBM是一个公司名称,1111是一个产品代码)Google 2222当然,请给我一分钟时间写出来是的,这看起来不错,但有一个问题,您在哪里检查代码中的产品代码文本。我可以看到您正在检查的公司名称文本?不小心忘记在if语句中添加()。这就是为什么会出现不兼容类型错误。我在你的问题中没有看到任何与ProductCode文本相关的内容。你能澄清一下吗?如果我想在同一个文件中搜索ProductCode文本并将结果与CompanyName结合起来,我该怎么做?因此,搜索两个文本并在最后打印结果