Как подкачать Символы строки в Java?

На вопрос:

Будет ли порожденный длинный поток блокировать wsgi от выполнения чего-либо еще для другого запроса?!

ответ - нет.

Вы все еще должны быть осторожны при создании фоновых потоков из запроса, хотя в случае, если вы просто создаете их огромное количество и забиваете весь процесс. Вам действительно нужна система организации задач, даже если вы делаете что-то в процессе.

В отношении выполнения форка или exec из веб-процесса, особенно из Apache, это, как правило, не очень хорошая идея, поскольку Apache может навязывать странные условия для среды созданного подпроцесса, которые могут технически мешать его работе.

Использование такой системы, как Celery, по-прежнему, вероятно, лучшее решение.

27
задан Coral Doe 19 October 2012 в 08:38
поделиться

5 ответов

Поскольку объекты String неизменяемы, переход к char [] через toCharArray , замена символов, затем создание new Строка из char [] через конструктор String (char []) будет работать.

Следующий пример меняет местами первый и второй символы:

String originalString = "abcde";

char[] c = originalString.toCharArray();

// Replace with a "swap" function, if desired:
char temp = c[0];
c[0] = c[1];
c[1] = temp;

String swappedString = new String(c);

System.out.println(originalString);
System.out.println(swappedString);

Результат:

abcde
bacde
47
ответ дан 28 November 2019 в 04:11
поделиться

String.replaceAll () или replaceFirst ()

String s = "abcde".replaceAll("ab", "ba")

Ссылка на JavaDocs String API

0
ответ дан 28 November 2019 в 04:11
поделиться

На этот вопрос несколько раз ответили, но вот еще одно развлечение: -)

public class Tmp {
    public static void main(String[] args) {
        System.out.println(swapChars("abcde", 0, 1));
    }
    private static String swapChars(String str, int lIdx, int rIdx) {
        StringBuilder sb = new StringBuilder(str);
        char l = sb.charAt(lIdx), r = sb.charAt(rIdx);
        sb.setCharAt(lIdx, r);
        sb.setCharAt(rIdx, l);
        return sb.toString();
    }
}
8
ответ дан 28 November 2019 в 04:11
поделиться

] String.toCharArray () предоставит вам массив символов, представляющих эту строку.

Вы можете изменить это, не изменяя исходную строку (поменять местами любые требуемые символы), а затем создать новую строку, используя String (char []) .

Обратите внимание, что строки неизменяемы , поэтому вам нужно создать новый строковый объект.

2
ответ дан 28 November 2019 в 04:11
поделиться

«В» строку нельзя. Строки неизменны. Вы можете легко создать вторую строку с помощью:

 String second = first.replaceFirst("(.)(.)", "$2$1");
27
ответ дан 28 November 2019 в 04:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: