用逗号替换字符串

时间:2013-08-13 05:57:37

标签: java

假设我有一个像这样的字符串

A. BCD, B. BGF and C.KLMN

,输出就像这样

A. BCD et al

因此,我想在第一个el al之后用,替换所有内容。我该怎么做?

7 个答案:

答案 0 :(得分:3)

非常简单的单行:

output= input.split(",")[0] + " et al" ;

如果input中没有逗号,请不要评论此代码会失败,因为此案例明确排除。我确信OP已经知道如何处理它,我们都应该关注他/她做什么

答案 1 :(得分:1)

你也可以尝试这个

    String str = "A. BCD, B. BGF and C.KLMN";
    if(str.contains(",")){
        int index = str.indexOf(",");// index of first occurrence
        String newStr = str.substring(0, index) + " el al";
        System.out.println(newStr); 
    } else{
        System.out.println(str);
    }

答案 2 :(得分:0)

获取逗号后面的字符串 并用你想要的字符串替换它

例如

Pattern p = Pattern.compile(".*,\\s*(.*)");
Matcher m = p.matcher("abcd,fg;ijkl, cas");

if (m.find())
    System.out.println(m.group(1));

或者您可以使用简单的String方法:

System.out.println(s.substring(s.lastIndexOf(",") + 1).trim());
System.out.println(s.substring(s.lastIndexOf(", ") + 2));

答案 3 :(得分:0)

您可以使用JAVA API中的indexOf方法。

String str = "A. BCD, B. BGF and C.KLMN";
int index = str.indexOf(",");
String remainingString = "";
if(index != -1){
    remainingString = str.substring(index + 1);
}

//这里的remainingString是第一个逗号后面的字符串部分。

现在使用。

替换它
str.replace(remainingString, "et al");

答案 4 :(得分:0)

您可以执行以下步骤:

  • 使用字符串indexOf()方法获取逗号索引。
  • 检查是否为正,即逗号是否存在。
  • 如果当时不存在逗号,则无需进行任何处理。
  • 如果存在逗号,请检查它是否是第一个字符?如果是第一个字符,则创建一个新字符串并将其返回。
  • 如果它不是第一个字符,则获取该索引的子字符串并将其附加所需的字符串。

答案 5 :(得分:0)

Apache StringUtils对字符串操作非常有用。它们包含一堆扩展基本JDK的方法,几乎​​都是空安全的,即如果字符串恰好为null,它们会返回合理的答案,而不是抛出空指针异常。

实现您的要求:

import org.apache.commons.lang3.StringUtils;
....

String str =  "A. BCD,  B. BGF and C.KLMN"; // or whatever it happens to be


str = StringUtils.contains(str, ",") ? StringUtils.substringBefore(str, ",") + " et al" : str;

在上面的代码中,如果str中存在逗号,则第一个操作数将在逗号之前的字符串部分后缀'et al'。否则,如果没有逗号,则str不变。

答案 6 :(得分:0)

您可以使用String的replaceFirst(String regex, String replacement)方法:

String str =  "A. BCD,  B. BGF and C.KLMN"; 
System.out.println(str.replaceFirst(",.*"," et al"));