如何删除所有不必要的信息并仅打印SAMPLE COMPANY。请注意,这个值可能会改变。在此字符串唯一的静态值是:名称:,:地址:,:联系人:计数并删除字符串 - java
:名称:示例公司:地址:#79城市地标哥:联系人:1234567个
谢谢!
如何删除所有不必要的信息并仅打印SAMPLE COMPANY。请注意,这个值可能会改变。在此字符串唯一的静态值是:名称:,:地址:,:联系人:计数并删除字符串 - java
:名称:示例公司:地址:#79城市地标哥:联系人:1234567个
谢谢!
您可以使用string.split(":")
并读取第三对象从数组以得到你的价值
不是这样,第二个值在这个例子中是'name'(因为只有尾空串被排除在外)。但逻辑仍然正确 – AxelH
同意@AxelH。编辑我的答案。谢谢 –
当公司名称中有一个':'时,这会失败。我会使用indexOf和substring方法。无论如何干净解决方案+1。 –
string[] sa = yourstring.split(':');
string newstring = sa[1];
然后,只需打印newstring。你说公司名称会改变,但字符串将始终采用这种格式,所以如果公司名称始终在第二位置,那么即使公司名称发生更改,这也是可行的。
与[Poorvi Nigotiya](http://stackoverflow.com/a/43840066/4391450)的回答相同,因为这是相同的...秒值将是'name'而不是您寻求的值。看看'String.split'是如何工作的。 – AxelH
由于在String
中有标签,因此我们可以使用一个capturing groups的正则表达式。
这里是它如何工作的一个简单的想法:
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
这是你所处理的数据的单行线,还是有许多这样的线路? –
如果你不提供[sscce](http://sscce.org/),将会很难帮助你... –