计数和删除字符串-java
如何删除所有不必要的信息,只打印公司样本。请注意,此值不可更改。此字符串中唯一的静态值是:名称:,:地址:,:联系人: :名称:样本公司:地址:#79哥伦比亚地标城:联系人:1234567计数和删除字符串-java,java,Java,如何删除所有不必要的信息,只打印公司样本。请注意,此值不可更改。此字符串中唯一的静态值是:名称:,:地址:,:联系人: :名称:样本公司:地址:#79哥伦比亚地标城:联系人:1234567 谢谢 您可以使用string.split(“:”)并从数组中读取第三个对象以获取值您可以使用string.split(“:”)并从数组中读取第三个对象以获取值 string[] sa = yourstring.split(':'); string newstring = sa[1]; 然后只需打印新闻字
谢谢 您可以使用
string.split(“:”)
并从数组中读取第三个对象以获取值您可以使用string.split(“:”)
并从数组中读取第三个对象以获取值
string[] sa = yourstring.split(':');
string newstring = sa[1];
然后只需打印新闻字符串。您说过公司名称将更改,但字符串将始终采用该格式,因此,如果公司名称始终位于第二个位置,则即使公司名称更改,这也会起作用
然后只需打印新闻字符串。您说过公司名称将更改,但字符串将始终采用该格式,因此,如果公司名称始终位于第二个位置,则即使公司名称更改,这也会起作用。让我们使用正则表达式,因为您的
字符串中有标签
下面是一个简单的工作原理:
String s = ":name:SAMPLE COMPANY:address:#79 Landmark City Columbia:contact:1234567";
Pattern p = Pattern.compile(":name:(.*):address:(.*):contact:(.*)");
Matcher m = p.matcher(s);
if(m.find()){
System.out.println("Name : " + m.group(1));
System.out.println("Address : " + m.group(2));
System.out.println("Contact : " + m.group(3));
}
这将输出
Name : SAMPLE COMPANY
Address : #79 Landmark City Columbia
Contact : 1234567
由于字符串中有标签,所以让我们将正则表达式与一些正则表达式一起使用
下面是一个简单的工作原理:
String s = ":name:SAMPLE COMPANY:address:#79 Landmark City Columbia:contact:1234567";
Pattern p = Pattern.compile(":name:(.*):address:(.*):contact:(.*)");
Matcher m = p.matcher(s);
if(m.find()){
System.out.println("Name : " + m.group(1));
System.out.println("Address : " + m.group(2));
System.out.println("Contact : " + m.group(3));
}
这将输出
Name : SAMPLE COMPANY
Address : #79 Landmark City Columbia
Contact : 1234567
这是您正在处理的一行数据,还是有很多这样的行?如果您不提供…这是您正在处理的一行数据,还是有很多这样的行?如果您不提供…不是真的,第二个值将是name
(因为只排除尾随的空字符串)。但逻辑仍然正确@AxelH。编辑了我的答案。谢谢当公司名称中有:
时,这将失败。我将使用indexOf和substring方法。无论如何,干净的解决方案+1。我同意@UmaKanth,但使用indexOf
并没有真正的帮助,使用regex会更简单。@UmaKanth如果名称是co呢ntains:地址:
?问题不在于此答案;问题的参数尚未确定 不太清楚。在本例中,第二个值是name
(因为只排除尾随的空字符串)。但逻辑仍然正确@AxelH。编辑了我的答案。谢谢当公司名称中有:
时,这将失败。我将使用indexOf和substring方法。无论如何,干净的解决方案+1。我同意@UmaKanth,但使用indexOf
并没有真正的帮助,使用regex会更简单。@UmaKanth如果名称是co呢ntains:地址:
?问题不在于此答案;问题的参数尚未确定 已明确说明。与的答案相同的注释,因为这是相同的…秒值将是name
而不是您要查找的值。请参见String.split
的实际工作方式。与的答案相同的注释,因为这是相同的…秒值将是name
而不是您要查找的值。请参见如何String.split
真的有效。如果地址包含字符串:address:
?@shmosel,如果我们更好地定义组,这可能有效。我想,但老实说,这不太可能在地址中找到这种模式。我同意这不太可能,但对于单个冒号也可能如此。或者可能有转义序列。这都是猜测l OP细化了他的问题。@shmosel请注意,提供的答案仅表明这是可能的。这并不是他具体问题的答案。我几乎从未提供与100%问题匹配的答案,OP还有一些调整要做。如果地址包含字符串:address:
,这行吗?@shmosel this coul如果我们能更好地定义组,我想这是可行的,但老实说,这不太可能在地址中找到这种模式。我同意这不太可能,但对于单个冒号也是如此。或者可能有一个转义序列。这都是猜测,直到OP完善了他的问题。@shmosel请注意,提供的答案只是表明这一点是可能的。这并不是他具体问题的答案。我几乎从来没有提供100%匹配问题的答案,OP仍然需要做一些调整。