Java 如何删除等号(=)后包含多个空格的行?
我的文件包含以下行: z1D_先前指定的公司(303760000)=GOIS 以前的HPD\U CI\U识别码(303524300)= 以前的服务CI\u识别码(303524200)= z1D_总开放事件(303070300)=0 z1D\U场地(303903600)=班加罗尔-IND08 z1D\u受让人\u电话(303903500)=不适用 z1D\u受让人\u电子邮件(303903400)=塔兰维尔。vij@in.com 我在寻找在等号后包含一些数据的行,忽略在等号后没有任何值的行,如: GOIS 0 班加罗尔-IND08 不适用 塔兰维尔。vij@in.com 这就是我尝试过的:Java 如何删除等号(=)后包含多个空格的行?,java,string,substring,Java,String,Substring,我的文件包含以下行: z1D_先前指定的公司(303760000)=GOIS 以前的HPD\U CI\U识别码(303524300)= 以前的服务CI\u识别码(303524200)= z1D_总开放事件(303070300)=0 z1D\U场地(303903600)=班加罗尔-IND08 z1D\u受让人\u电话(303903500)=不适用 z1D\u受让人\u电子邮件(303903400)=塔兰维尔。vij@in.com 我在寻找在等号后包含一些数据的行,忽略在等号后没有任何值的行,如:
if (strword.contains("="))
{
int num1=strword.indexOf("=");
int num2=strword.lastIndexOf("");
String strNew=strword.substring(num1,num2);
String removeSpaces=strNew.replace("\\s+","");
System.out.println(removeSpaces);
}
如果你不理解我的问题,请回复我。
请不要心烦意乱并否决投票,我以后可能会失去再次提问的机会。您已经在“=”号后面获得了正确的数据 所以只要加上 如果(!strword.trim()等于(“”) 在sop之前,你就有你想要的了
希望这有帮助您已经在“=”号之后获得了数据 所以只要加上 如果(!strword.trim()等于(“”) 在sop之前,你就有你想要的了 希望这有帮助为什么不使用regex
"(?<==)\\s*(\\S.*)"
在这里检查部分
,它可能是空的
或您需要的值
注意,您应该修复代码中的错误:
我刚刚在你的代码中看到:
String removeSpaces=strNew.replace("\\s+","");
replace(target,repl)不会认为target
是正则表达式!!它可以进行文字替换。如果在项目中以相同的方式使用此方法,则应该修复它
更新,以防您只需要检查是否需要删除行:
然后用这个正则表达式检查行:
"=.*\\S.*$"
这不会为您提取值,但它会告诉您是否有=
登录行,以及=
之后是否有值(非空字符串),为什么不使用regex
"(?<==)\\s*(\\S.*)"
在这里检查部分
,它可能是空的
或您需要的值
注意,您应该修复代码中的错误:
我刚刚在你的代码中看到:
String removeSpaces=strNew.replace("\\s+","");
replace(target,repl)不会认为target
是正则表达式!!它可以进行文字替换。如果在项目中以相同的方式使用此方法,则应该修复它
更新,以防您只需要检查是否需要删除行:
然后用这个正则表达式检查行:
"=.*\\S.*$"
这不会为您提取值,但它会告诉您是否有
=
登录行,以及在您的行上使用=
后是否有值(非空字符串),然后您可以检查=
符号是否是修剪行上的最后一个字符,如果是删除它。在您的行上使用,然后您可以检查=
符号是否是修剪行上的最后一个字符,如果是删除它。另一种拆分字符串的方法是使用字符串拆分方法
public String getValue(String line) {
String[] values = line.split(" =");
if (values.length == 1) {
return "";
} else {
return values[1].trim();
}
}
如果getValue方法返回空字符串(“”),请忽略该行。另一种拆分字符串的方法是使用字符串拆分方法
public String getValue(String line) {
String[] values = line.split(" =");
if (values.length == 1) {
return "";
} else {
return values[1].trim();
}
}
如果getValue方法返回空字符串(“”),请忽略该行。@Kent。。我如何使用这个正则表达式??作为matcher方法???@user3711467做一个google,如何用regex提取字符串。你会知道怎么做…@肯特。。这很好,但是删除这些行之后,它会创建空的新行。。我尝试使用trim()函数,但行之间仍然存在这些空行。@user3711467是否要获取这些值或重新格式化文件?我以为你想要这些价值观。你可以检查
部分
,如果它是空的,跳过,下一行,否则,部分
有你的价值,用它做你的业务逻辑。@Kent..我没有足够的声誉来支持你的答案..自从我加入以来recently@Kent.. 我如何使用这个正则表达式??作为matcher方法???@user3711467做一个google,如何用regex提取字符串。你会知道怎么做…@肯特。。这很好,但是删除这些行之后,它会创建空的新行。。我尝试使用trim()函数,但行之间仍然存在这些空行。@user3711467是否要获取这些值或重新格式化文件?我以为你想要这些价值观。你可以检查部分
,如果它是空的,跳过,下一行,否则,部分
有你的价值,用它做你的商业逻辑。@Kent.我没有足够的声誉来投票支持你的答案..因为我最近加入了