java - 如何删除等号 (=) 后包含多个空格的行?

标签 java string substring

我的文件包含以下行:

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/

相关文章:

c - 在字符串中的每个字符之间添加 '-' ?

java - 将字符串数组添加到 ArrayList

bash - 替换字符串中最后一次出现的子字符串 (bash)

java - 在使用 struts html 标签时,如何使用其 property 属性获取文本框的值?还有其他方法可以获取值吗?

java - 将倒数计时器值传递给下一个 Activity

C:使用 scanf 之前计算字符串的长度

ios - 删除 NSString 的最后一个字符,直到遇到分隔符

mysql - 如何在 MySQL 中提取部分 Base64 编码的字符串?

Java FileReader,仅作为读取

java - java中如何交换栈元素