37

私は文字列を持っています:

String fieldName = "A=2,B=3 and C=3,";

,ここで、最後をスペースに置き換えたいと思います。

利用した:

if (fieldName.endsWith(",")) {
    fieldName.replace(",", " ");
    fieldName = fieldName.replace((char) (fieldName.length() - 1), 'r');
}

System.out.println("fieldName = " + fieldName);

しかし、それでも私は同じ古い文字列を取得しています。代わりにこの出力を取得するにはどうすればよいですか?

fieldName = A=2,B=3 and C=3
4

13 に答える 13

67

あなたは単に使用することができますsubstring

if(fieldName.endsWith(","))
{
  fieldName = fieldName.substring(0,fieldName.length() - 1);
}

文字列はJavaでは不変であるsubstringため、実行後は必ずフィールドを再割り当てしてください

于 2013-03-07T10:21:38.393 に答える
14

最後の「,」をスペースに置き換えたい

if (fieldName.endsWith(",")) {
    fieldName = fieldName.substring(0, fieldName.length() - 1) + " ";
}

末尾のカンマを削除したい場合は、単純に . を削除します+ " "

于 2013-03-07T10:20:47.360 に答える
12

必要な結果を得るには、次のようにします。

fieldName = fieldName.trim();
fieldName = fieldName.substring(0,fieldName.length() - 1);
于 2013-03-07T10:20:52.993 に答える
11
fieldName = fieldName.substring(0, string.length()-1) + " ";
于 2013-03-07T10:20:04.940 に答える
8

まず、文字列は Java では不変です。置換の結果を変数に代入する必要があります。

fieldName = fieldName.replace("watever","");

String#replaceAll(regex, str);を使用してオプションとして正規表現を使用することもできます。

fieldName = fieldName.replaceAll(",$","");
于 2013-03-07T10:20:51.577 に答える
6

これを試して:

s = s.replaceAll("[,]$", "");
于 2015-04-21T08:27:39.127 に答える
2

org.apache.commons.lang3.StringUtils.removeEnd()org.springframework.util.StringUtils.trimTrailingCharacter()はあなたの友達です:

StringUtils.removeEnd(null, *)      = null
StringUtils.removeEnd("", *)        = ""
StringUtils.removeEnd(*, null)      = *
StringUtils.removeEnd("www.domain.com", ".com.")  = "www.domain.com"
StringUtils.removeEnd("www.domain.com", ".com")   = "www.domain"
StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com"
StringUtils.removeEnd("abc", "")    = "abc"
    @Test
    public void springStringUtils() {
        String url = "https://some.site/path/";

        String result = org.springframework.util.StringUtils.trimTrailingCharacter(url, '/');

        assertThat(result, equalTo("https://some.site/path"));
    }
于 2019-10-24T14:58:14.813 に答える
1

次のように、正規表現を使用して最後のコンマ (,) を識別し、" " に置き換えることができます。

if(fieldName.endsWith(","))
{                           
fieldName = fieldName.replace(/,([^,]*)$/," ");
}
于 2014-07-02T18:57:56.847 に答える
0

すでに @Abubakkar Rangara は、問題を処理する簡単な方法に答えています

代替手段は次のとおりです。

String[] result = null;
if(fieldName.endsWith(",")) {                           
String[] result = fieldName.split(",");
    for(int i = 1; i < result.length - 1; i++) {
        result[0] = result[0].concat(result[i]);
    }
}
于 2015-04-21T09:18:27.980 に答える
-5

コードを fieldName = fieldName.replace("," , " "); のように変更します。

于 2013-03-07T10:27:55.207 に答える