我想从String的结尾删除以下单词 ‘PTE’, ‘LTD’, ‘PRIVATE’ and ‘LIMITED’
我尝试了代码,但后来我卡住了.我试过这个
String[] str = {"PTE", "LTD", "PRIVATE", "LIMITED"};
String company = "Basit LTD";
for(int i=0;i<str.length;i++) {
if (company.endsWith(str[i])) {
int position = company.lastIndexOf(str[i]);
company = company.substring(0, position);
}
}
System.out.println(company.replaceAll("\\s",""));
Run Code Online (Sandbox Code Playgroud)
有效.但是假设公司最终是Basit LIMITED PRIVATE LTD PTE或者说Basit LIMITED PRIVATE PTE LTD是四个单词的任意组合.接着上面的代码只是删除最后一个名字,即,PTE或PRIVATE等等,并且输出BasitLIMITEDPRIVATELTD.
我希望输出正好 Basit
我该怎么做?
谢谢
- - - - - - - -编辑 - -
请注意,这里的公司名称只是一个例子,它没有必要始终相同.也许我的名字就像
String company = "Masood LIMITED LTD PTE PRIVATE"
Run Code Online (Sandbox Code Playgroud)
或者最后可以有上述词语的任何名称.
谢谢
您可以单行执行此操作.无需循环.只需使用String#replaceAll(regex,str).
company = company.replaceAll("PTE$*?|LTD$*?|PRIVATE$*?|LIMITED$*?","");
Run Code Online (Sandbox Code Playgroud)
如果您将不需要的单词放入地图中,它将在结果字符串中被省略
HashMap map = new HashMap();
map.put("PTE", "");
map.put("LTD", "");
map.put("PRIVATE", "");
map.put("LIMITED", "");
String company = "Basit LTD PRIVATE PTE";
String words[] = company.split(" ");
String resultantStr = "";
for(int k = 0; k < words.length; k++){
if(map.get(words[k]) == null) {
resultantStr += words[k] + " ";
}
}
resultantStr = resultantStr.trim();
System.out.println(" Trimmed String: "+ resultantStr);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1402 次 |
| 最近记录: |