Подтвердить что ты не робот

Вставить строку в начале другой строки

Как вставить строку, заключенную с двойными кавычками в начале StringBuilder и String?

Например:

StringBuilder _sb = new StringBuilder("Sam");

Мне нужно вставить строку "Hello" в начало "Sam", а O/p - "Hello Sam".

String _s = "Jam";

Мне нужно вставить строку "Hello" в начало "Jam", а O/p - "Hello Jam".

Как это сделать?

4b9b3361

Ответ 1

Первый случай выполняется с помощью метода insert():

_sb.insert(0, "Hello ");

Последний случай может быть выполнен с использованием перегруженного + оператора на Строках. Это использует StringBuilder за кулисами:

String s2 = "Hello " + _s;

Ответ 2

Другие ответы объясняют, как вставить строку в начале другого String или StringBuilder (или StringBuffer).

Однако, строго говоря, вы не можете вставить строку в начало другой. Строки в Java неизменны 1.

Когда вы пишете:

String s = "Jam";
s = "Hello " + s;

вы на самом деле вызываете создание нового объекта String который является объединением "Hello" и "Jam". Вы вообще не вставляете символы в существующий объект String.


1 - Технически возможно использовать отражение, чтобы разбить абстракцию на объектах String и изменить их... даже при том, что они неизменны по своему замыслу.Но это действительно плохая идея сделать это.Если вы не знаете, что объект String был создан явно с помощью new String(...) он может использоваться совместно, или он может совместно использовать внутреннее состояние с другими объектами String.Наконец, в спецификации JVM четко указано, что поведение кода, использующего отражение для изменения final не определено.Мутация объектов String опасна.

Ответ 4

private static void appendZeroAtStart() {
        String strObj = "11";
        int maxLegth = 5;

        StringBuilder sb = new StringBuilder(strObj);
        if (sb.length() <= maxLegth) {
            while (sb.length() < maxLegth) {
                sb.insert(0, '0');
            }
        } else {
            System.out.println("error");
        }

        System.out.println("result: " + sb);

    }

Ответ 5

import java.lang.StringBuilder;

public class Program {
    public static void main(String[] args) {

    // Create a new StringBuilder.
    StringBuilder builder = new StringBuilder();

    // Loop and append values.
    for (int i = 0; i < 5; i++) {
        builder.append("abc ");
    }
    // Convert to string.
    String result = builder.toString();

    // Print result.
    System.out.println(result);
    }
}

Ответ 6

Лучше, если вы найдете кавычки с помощью метода indexof(), а затем добавьте строку за этим индексом.

string s="hai";
int s=s.indexof(""");