Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除等号(=)后包含多个空格的行?_Java_String_Substring - Fatal编程技术网

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

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 我在寻找在等号后包含一些数据的行,忽略在等号后没有任何值的行,如:

我的文件包含以下行:

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

这就是我尝试过的:

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.我没有足够的声誉来投票支持你的答案..因为我最近加入了