Android - how to replace part of a string by another string?

前端 未结 6 833
夕颜
夕颜 2020-11-27 17:07

I have strings with some numbers and english words and I need to translate them to my mother tongue by finding them and replacing them by locallized version of this word. Do

相关标签:
6条回答
  • 2020-11-27 17:46

    It is working, but it wont modify the caller object, but returning a new String.
    So you just need to assign it to a new String variable, or to itself:

    string = string.replace("to", "xyz");
    

    or

    String newString = string.replace("to", "xyz");
    

    API Docs

    public String replace (CharSequence target, CharSequence replacement) 
    

    Since: API Level 1

    Copies this string replacing occurrences of the specified target sequence with another sequence. The string is processed from the beginning to the end.

    Parameters

    • target the sequence to replace.
    • replacement the replacement sequence.

    Returns the resulting string.
    Throws NullPointerException if target or replacement is null.

    0 讨论(0)
  • 2020-11-27 17:47
    String str = "to";
    str.replace("to", "xyz");
    

    Just try it :)

    0 讨论(0)
  • 2020-11-27 17:47

    rekaszeru

    I noticed that you commented in 2011 but i thought i should post this answer anyway, in case anyone needs to "replace the original string" and runs into this answer ..

    Im using a EditText as an example


    // GIVE TARGET TEXT BOX A NAME

     EditText textbox = (EditText) findViewById(R.id.your_textboxID);
    

    // STRING TO REPLACE

     String oldText = "hello"
     String newText = "Hi";      
     String textBoxText = textbox.getText().toString();
    

    // REPLACE STRINGS WITH RETURNED STRINGS

    String returnedString = textBoxText.replace( oldText, newText );
    

    // USE RETURNED STRINGS TO REPLACE NEW STRING INSIDE TEXTBOX

    textbox.setText(returnedString);
    

    This is untested, but it's just an example of using the returned string to replace the original layouts string with setText() !

    Obviously this example requires that you have a EditText with the ID set to your_textboxID

    0 讨论(0)
  • 2020-11-27 17:52

    You're doing only one mistake.

    use replaceAll() function over there.

    e.g.

    String str = "Hi";
    String str1 = "hello";
    str.replaceAll( str, str1 );
    
    0 讨论(0)
  • 2020-11-27 17:58

    In kotlin there is no replaceAll, so I created this loop to replace repeated values ​​in a string or any variable.

     var someValue = "https://www.google.com.br/"
        while (someValue.contains(".")) {
            someValue = someValue.replace(".", "")
        }
    Log.d("newValue :", someValue)
    // in that case the stitches have been removed
    //https://wwwgooglecombr/
    
    0 讨论(0)
  • 2020-11-27 18:01

    MAY BE INTERESTING TO YOU:

    In java, string objects are immutable. Immutable simply means unmodifiable or unchangeable.

    Once string object is created its data or state can't be changed but a new string object is created.

    0 讨论(0)
提交回复
热议问题