2076 次
7 に答える
9
これを1行で実行できます。ループする必要はありません。String#replaceAll(regex, str)を使用するだけです。
company = company.replaceAll("PTE$*?|LTD$*?|PRIVATE$*?|LIMITED$*?","");
于 2013-03-07T09:33:53.650 に答える
2
不要な単語をマップに配置すると、結果の文字列で省略されます
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);
于 2013-03-07T09:47:24.537 に答える
2
while
文字列の末尾にあるこれらのサフィックスのみを削除する場合は、ループを導入できます。
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",""));
PTE Basit LIMITED INC
他の人が説明したように、変換することを気にしない場合Basit
(および最初の PTE を削除する場合) は、replaceAll
機能するはずです。
于 2013-03-07T09:39:07.190 に答える
0
これを試して :
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",""));
}
于 2013-03-07T09:37:20.333 に答える
0
必要なのはtrim()
、関数を再帰的に使用して呼び出すことだけです。または、末尾からサブ文字列を削除するたびに、i
を0にリセットします。
于 2013-03-07T09:37:40.563 に答える