我的文件包含以下行:
z1D_PreviousAssignedCompany (303760000) = GOIS
上一个_HPD_CI_ReconID (303524300) =
Previous_ServiceCI_ReconID (303524200) =
z1D_TotalOpenIncidentsCount (303070300) = 0
z1D_Assignee_Site (303903600) = 类加罗尔 - IND08
z1D_Assignee_Phone (303903500) = N/A
z1D_Assignee_Email (303903400) = taranveer.vij@in.com
我正在寻找等号后包含一些数据的行,忽略等号后没有任何值的行,例如:
GOIS
0
类加罗尔 - IND08
不适用
taranveer.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);
}
如果您不明白我的问题,请回复我。 请不要沮丧并投反对票,我将来可能会失去再次提问的机会。
最佳答案
为什么不使用正则表达式?
"(?<==)\\s*(\\S.*)"
将为您提供group(1)
中的非空字符串。
或者您可以使用replaceAll
:
String part=line.replaceAll(".*=\\s*","");
这里检查部分
,它可以是空
或您需要的值。
注意,您应该修复代码中的错误:
我刚刚在你的代码中看到了这一点:
String removeSpaces=strNew.replace("\\s+","");
string.replace(target, repl) 不会将 target
视为正则表达式!它进行字面替换。如果您在项目中以相同的方式使用了此方法,则应该修复它。
更新,以防您只需要检查是否需要删除一行:
然后只需使用此正则表达式检查该行:
"=.*\\S.*$"
这不会为您提取值,但它会告诉您行中是否有 =
符号以及 =
后面是否有值(非空字符串) >.
关于java - 如何删除等号 (=) 后包含多个空格的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164185/