Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей по программированию

Арбуз Профи (541), на голосовании 6 месяцев назад
Есть слова, записанные на русском языке. Нужно получить слова с теми же разделителями между ними, но каждый символ слова будет закодирован его порядковым номером. В качестве разделителя символов принять «|».

я смог составить что-то такое, но тогда получается:

привет пока -> 17|18|10|3|6|20| 17|16|12|1|

мне нужно сделать, чтобы было 17|18|10|3|6|20 17|16|12|1 , подскажите, как это можно сделать?
 const string rus_alph = "абвгдеёжзийклмнопрстуфхцчшщъыьэяю"; 
string sourceStr = File.ReadAllText(curFile), resStr = String.Empty;
int letterOrder = 0;

for (int i = 0; i < sourceStr.Length; i++)
{
letterOrder = rus_alph.IndexOf(Char.ToLower(sourceStr[i])) + 1;
if (letterOrder != 0)
resStr += letterOrder.ToString() + "|";
else
resStr += sourceStr[i];
}
Голосование за лучший ответ
rmdir mkdir Ученик (200) 7 месяцев назад
 const string rus_alph = "абвгдеёжзийклмнопрстуфхцчшщъыьэяю";  
string sourceStr = File.ReadAllText(curFile), resStr = String.Empty;
int letterOrder = 0;

for (int i = 0; i < sourceStr.Length; i++)
{
letterOrder = rus_alph.IndexOf(Char.ToLower(sourceStr[i])) + 1;
if (letterOrder != 0)
{
resStr += letterOrder.ToString();
if (i < sourceStr.Length - 1 && rus_alph.Contains(Char.ToLower(sourceStr[i + 1]).ToString()))
{
resStr += "|";
}
}
else
{
resStr += sourceStr[i];
}
}
АрбузПрофи (541) 7 месяцев назад
лучший
Saund Qq Ученик (139) 6 месяцев назад
Для того чтобы убрать последний символ "|", ты можешь использовать функцию string.Join(), которая объединяет элементы массива строк с использованием указанного разделителя.

const string rus_alph = "абвгдеёжзийклмнопрстуфхцчшщъыьэяю";
string sourceStr = File.ReadAllText(curFile), resStr = String.Empty;
int letterOrder = 0;

for (int i = 0; i < sourceStr.Length; i++)
{
letterOrder = rus_alph.IndexOf(Char.ToLower(sourceStr[i])) + 1;
if (letterOrder != 0)
resStr += letterOrder.ToString() + "|";
else
resStr += sourceStr[i];
}

// Удаление последнего символа разделителя "|"
resStr = resStr.TrimEnd('|');

// Вывод итоговой строки
Console.WriteLine(resStr);


Теперь твоя строка будет выводиться без последнего символа "|", чтобы результат выглядел так: 17|18|10|3|6|20 17|16|12|1.
Похожие вопросы