gpt4 book ai didi

java - 从 Java 中的字符串中删除 IP 地址

转载 作者:行者123 更新时间:2023-12-02 00:48:33 25 4
gpt4 key购买 nike

有什么方法可以从字符串中删除 IP 吗?

我们获得的输入文件有时会将 IP 附加到用户名,例如

Jan vd MerwePiet Breedt (172.166.23.41)Jan vd Merwe (164.23.23.51)Sarel Fourie (23.12.167.244)Piet Breedt

所以如果有IP,我想删除它。我一直在研究很多函数,但似乎无法正确获取索引和参数。

最佳答案

您可以查找 ( 并删除剩余的字符串。

public class Main {

public static void main(String[] args) {

String[] names = { "Jan vd Merwe",
"Piet Breedt (172.166.23.41)",
"Jan vd Merwe (164.23.23.51)",
"Sarel Fourie (23.12.167.244)" };

for (String name : names) {

int parIndex = name.indexLastOf('(');
if (parIndex != -1)
name = name.substring(0, parIndex-1);

System.out.println(name);
}
}
}

打印:

Jan vd Merwe
Piet Breedt
Jan vd Merwe
Sarel Fourie
<小时/>

另一种解决方案,基于正则表达式:

    String[] names = { "Jan vd Merwe", 
"Piet Breedt (172.166.23.41)",
"Jan vd Merwe (164.23.23.51)",
"Sarel Fourie (23.12.167.244)" };

String ipExp = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
Pattern pattern = Pattern.compile("(.*?)\\s*(\\(" + ipExp + "\\))?");

for (String nameIp : names) {
Matcher m = pattern.matcher(nameIp);
if (m.matches()) {
String name = m.group(1);
String ip = m.group(2) == null ? "n/a" : m.group(2);
System.out.printf("Name: %s, Ip: %s%n", name, ip);
}
}

打印

Name: Jan vd Merwe, Ip: n/a
Name: Piet Breedt, Ip: (172.166.23.41)
Name: Jan vd Merwe, Ip: (164.23.23.51)
Name: Sarel Fourie, Ip: (23.12.167.244)

关于java - 从 Java 中的字符串中删除 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4178180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com