Как поменять местами буквы

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
Здравствуйте, подскажите пожалуйста, как сделать такое?
Например есть слово "зеннопостер" нужно оставить не изменяя первую и последнюю букву, а те, что внутри рандомно перемешать? День мучаюсь ничего в голову не приходит?
 

shtift

Client
Регистрация
29.07.2015
Сообщения
148
Благодарностей
290
Баллы
63
C#:
string word = "зеннопостер";

if(word.Length < 3)
    return word;
   
var r = new Random();
var arr = word.Substring(1, word.Length - 2).OrderBy(x => r.Next()).ToArray();

var shuffleString = word[0] + new String(arr) + word[word.Length - 1];

project.SendInfoToLog(shuffleString, true);
 

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
C#:
string word = "зеннопостер";

if(word.Length < 3)
    return word;
  
var r = new Random();
var arr = word.Substring(1, word.Length - 2).OrderBy(x => r.Next()).ToArray();

var shuffleString = word[0] + new String(arr) + word[word.Length - 1];

project.SendInfoToLog(shuffleString, true);
спасибо, но как взять с переменной и положить назад результат, я в коде слабоват. в логе изменения увидел.
 

shtift

Client
Регистрация
29.07.2015
Сообщения
148
Благодарностей
290
Баллы
63
спасибо, но как взять с переменной и положить назад результат, я в коде слабоват. в логе изменения увидел.
C#:
var myVar = project.Variables["ИМЯ_ВАШЕЙ_ПЕРЕМЕННОЙ"];

string word = myVar.Value;

if(word.Length < 3)
    return word;
   
var r = new Random();
var arr = word.Substring(1, word.Length - 2).OrderBy(x => r.Next()).ToArray();

var shuffleString = word[0] + new String(arr) + word[word.Length - 1];

myVar.Value = shuffleString;
 
  • Спасибо
Реакции: Vinovnik

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
C#:
var myVar = project.Variables["ИМЯ_ВАШЕЙ_ПЕРЕМЕННОЙ"];

string word = myVar.Value;

if(word.Length < 3)
    return word;
  
var r = new Random();
var arr = word.Substring(1, word.Length - 2).OrderBy(x => r.Next()).ToArray();

var shuffleString = word[0] + new String(arr) + word[word.Length - 1];

myVar.Value = shuffleString;
СПАСИБО!!!
 
  • Спасибо
Реакции: shtift

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
а можно сделать так, чтобы не менялись две первые и две последние буквы?
C#:
var myVar = project.Variables["ИМЯ_ВАШЕЙ_ПЕРЕМЕННОЙ"];

string word = myVar.Value;

if(word.Length < 3)
    return word;
  
var r = new Random();
var arr = word.Substring(1, word.Length - 2).OrderBy(x => r.Next()).ToArray();

var shuffleString = word[0] + new String(arr) + word[word.Length - 1];

myVar.Value = shuffleString;
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
а можно сделать так, чтобы не менялись две первые и две последние буквы?
Тебе надо делать ошибки в тексте? Есть на форуме снипет для этого, можно задавать процент ошибок, он еще и сам пишет))
 

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)