Я ищу, чтобы переключить 2 случайных символа в строке. Например, если я начинаю с «abcdef», я бы хотел, чтобы компьютер сгенерировал 2 случайных числа и переключил 2 символа. Таким образом, возможным результатом может быть «afcdeb».Как вы переключаете две случайные буквы в строке в java?
ответ
- получить длину строки
- получить 2 разных ИНТ случайных чисел от 0 до длины строки: rand1 и rand2.
- Я думаю, вы должны преобразовать строку в массив символов.
- Сделайте обмен в массиве с 2 случайными числами.
- Преобразование массива в строку.
Вы можете использовать следующий подход, используя StringBuilder.
String string="Your String";
int length=string.length();
Random rand=new Random();
int one=0;
int two=0;
/*
generate two random indexes which are not equal to each other.
*/
while(length>=2 && one==two){
one=rand.nextInt(length);
two=rand.nextInt(length);
}
//use String builder and interchange the characeters.
StringBuilder builder=new StringBuilder(string);
builder.setCharAt(one,string.charAt(two));
builder.setCharAt(two,string.charAt(one));
String newString=builder.toString();
Жаль, что это боль, но есть ли способ сделать это без StringBuilder? –
Есть путь. Вы объединяете подстроку и создаете новую строку. Но код будет немного сложным. Как в [this] (http://stackoverflow.com/questions/6952363/replace-a-character-at-a-specific-index-in-a-string) вопрос –
Генерация случайных чисел INDEX1 и index2 между 0 и (длина строки -1)
int index1= randomNumber1;
int index2= randomNumber2;
String str ="abcdef";
String charSwap1= str.substring(index1, index1+1);
String charSwap2= str.substring(index2, index2+1);
StringBuilder builder=new StringBuilder();
builder.append(str);
builder.replace(index1,index1+1,charSwap2);
builder.replace(index2,index2+1,charSwap1);
System.out.println(builder.toString());
Это возвращает ошибку в String charSwap1 = str. подстрока (index1, index1 + 1); Строка charSwap2 = str.substring (index2, index2 + 1); Индекс находится за пределами допустимого диапазона –
startIndex включен, тогда как endIndex является исключительным .. Он не должен возвращать какую-либо ошибку, поскольку индекс + 1 будет 2 в вашем случае, а index2 + 1 должен быть 6, который находится в пределах диапазона строк. Вы получаете ошибку для charSwap2 или charSwap1 ?? Если для charSwap2 используйте это вместо этого. str.substring (index2), если это последний символ. – annu
- 1. Смените две буквы в строке
- 2. Как вы переключаете ViewControllers?
- 3. Как вы переключаете пользователя?
- 4. Как вы переключаете фон: url's?
- 5. BufferedWriter, записывающий случайные буквы в файл (Java)
- 6. Подсчитайте буквы в строке Java
- 7. Как вы переключаете языки на локальные настройки?
- 8. как создать случайные буквы в идее селена?
- 9. Заменить случайные буквы в строке с совпадающей записью
- 10. Генерировать случайные буквы в C
- 11. Как напечатать две или более одинаковые буквы в строке?
- 12. Как считать буквы в строке
- 13. На Android, как вы переключаете действия программно?
- 14. Как вы переключаете систему координат NSView?
- 15. Как вы переключаете представления внутри представления?
- 16. Как вы переключаете один UIView вокруг?
- 17. Как выбрать случайные буквы в C++
- 18. Заменить буквы в строке
- 19. Как вы обнаруживаете «слово» в строке, содержащей буквы и цифры?
- 20. Случайные буквы возвращают пустой
- 21. Удвоение каждой буквы в строке
- 22. Как вы переключаете видимость элемента html в Javascript?
- 23. Как вы устанавливаете, очищаете и переключаете один бит в JavaScript?
- 24. как вы переключаете столбцы и строки в gridview
- 25. Как вы переключаете объекты bean-объектов в JSF?
- 26. Как вы устанавливаете, очищаете и переключаете один бит в Rust?
- 27. Соответствующие буквы в строке
- 28. Python 3 - Найти две буквы в одной строке
- 29. своп первые две буквы каждого слова в строке
- 30. Как вы скажите, являются ли буквы Unicode последовательными в Java?
Что код, который вы пробовали? – Gunaseelan