Java 如何从字符串末尾删除匹配的单词
我想删除字符串末尾的以下单词Java 如何从字符串末尾删除匹配的单词,java,Java,我想删除字符串末尾的以下单词“PTE”、“LTD”、“PRIVATE”和“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 = compa
“PTE”、“LTD”、“PRIVATE”和“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",""));
或者任何可以在末尾有上述文字的名称
谢谢您可以在一行中完成此操作。不需要循环。就用吧 试试这个:
public static void main(String a[]) {
String[] str = {"PTE", "LTD", "PRIVATE", "LIMITED"};
String company = "Basit LIMITED PRIVATE LTD PTE";
for(int i=0;i<str.length;i++) {
company = company.replaceAll(str[i], "");
}
System.out.println(company.replaceAll("\\s",""));
}
publicstaticvoidmain(字符串a[]){
字符串[]str={“私人”、“有限”、“私人”、“有限”};
String company=“Basit LIMITED PRIVATE LTD私人有限公司”;
对于(int i=0;i您只需使用trim()
递归调用函数,或者每次从末尾删除子字符串时,将i
重置为0。如果您只想删除字符串末尾的这些后缀,则可以在的同时引入循环:
String[] str = {"PTE", "LTD", "PRIVATE", "LIMITED"};
boolean foundSuffix = true;
String company = "Basit LTD";
while (foundSuffix) {
foundSuffix = false;
for(int i=0;i<str.length;i++) {
if (company.endsWith(str[i])) {
foundSuffix = true;
int position = company.lastIndexOf(str[i]);
company = company.substring(0, position);
}
}
}
System.out.println(company.replaceAll("\\s",""));
String[]str={“私人”、“有限”、“私人”、“有限”};
布尔foundSuffix=true;
字符串公司=“Basit有限公司”;
while(foundSuffix){
foundSuffix=false;
对于(int i=0;i如果将不需要的单词放在映射中,它将被写入结果字符串中
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);
HashMap map=newhashmap();
地图放置(“PTE”和“);
地图出售(“有限公司”);
地图放置(“私人”和“);
地图出售(“有限”);
String company=“Basit有限公司私人私人有限公司”;
字符串[]=company.split(“”);
字符串resultststr=“”;
for(int k=0;k
首先使用replace方法,我们得到word=my name is…..khan
(注意:
)表示空格)。现在我们应该删除这些空格,因为我们正在创建一个新字符串,只需添加所有标记
输出:我的名字是khan
我试图为我的一个项目做完全相同的事情。几天前我写了这段代码。现在我正试图找到一个更好的方法来做,这就是我发现这个问题的原因。但在看到其他答案后,我决定分享我的代码版本
Collection<String> stopWordSet = Arrays.asList("PTE", "LTD", "PRIVATE", "LIMITED");
String company = "Basit LTD"; //Or Anything
String[] tokens = company.split("[\@\]\\\_\^\[\"\#\ \!\&\'\`\$\%\*\+\(\)\.\/\,\-\;\~\:\}\|\{\?\>\=\<]+");
Stack<String> tokenStack = new Stack<>();
tokenStack.addAll(Arrays.asList(tokens));
while (!tokenStack.isEmpty()) {
String token = tokenStack.peek();
if (stopWordSet.contains(token))
tokenStack.pop();
else
break;
}
String formattedCompanyName = StringUtils.join(tokenStack.toArray());
Collection stopWordSet=Arrays.asList(“私人”、“有限”、“私人”、“有限”);
String company=“Basit LTD”//或任何东西
String[]tokens=company.split(“[\@\]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\它会将第一个单词改为COMTIONY。您应该在每个字符串的末尾添加$。这个符号指定字符串的结尾。@PREMGERROR我尝试过这个string company=“Basit LIMITED PRIVATE PTE LTD”;
-->company=company.replaceAll(“PTE$| LTD$|PRIVATE$|LIMITED$”);
-->System.out.println(company)
但它正在打印Basit LIMITED PRIVATE PTE
而不仅仅是Basit
…?BasitDemar LIMITED PRIVATE LTD“这将导致Basitemar因此从第一个单词本身中删除LTD。不,名称只是一个示例,它可以是任何组合,这里我硬编码字符串,例如,可能是我有公司名称Masood PRIVATE PTE LTD
。。。
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);
public class StringMatchRemove {
public static void main(String[] args) {
String str="my name is noorus khan";
String search="noorus";
String newString="";
String word=str.replace(search," ");
StringTokenizer st = new StringTokenizer(word," ");
while(st.hasMoreTokens())
{
newString = newString + st.nextToken() + " ";
}
System.out.println(newString);
}
Collection<String> stopWordSet = Arrays.asList("PTE", "LTD", "PRIVATE", "LIMITED");
String company = "Basit LTD"; //Or Anything
String[] tokens = company.split("[\@\]\\\_\^\[\"\#\ \!\&\'\`\$\%\*\+\(\)\.\/\,\-\;\~\:\}\|\{\?\>\=\<]+");
Stack<String> tokenStack = new Stack<>();
tokenStack.addAll(Arrays.asList(tokens));
while (!tokenStack.isEmpty()) {
String token = tokenStack.peek();
if (stopWordSet.contains(token))
tokenStack.pop();
else
break;
}
String formattedCompanyName = StringUtils.join(tokenStack.toArray());