Какая функция нужна для замены символа в строке в Python?
Для замены символа в строке используется метод ‘replace()’. В качестве обязательных аргументов методу передаются искомая строка и строка, на которую нужно заменить искомую.
txt = 'I like bananas' x = txt.replace('bananas', 'apples') print(x) # => I like apples
Также в качестве третьего необязательного аргумента можно передать целое число, обозначающее какое количество вхождений искомой строки нужно поменять. Если не передавать этот параметр, будут заменены все вхождения искомой строки:
txt = 'one one was a race horse, two two was one too.' x = txt.replace('one', 'three') print(x) # => three three was a race horse, two two was three too.
txt = 'one one was a race horse, two two was one too.' x = txt.replace('one', 'three', 2) print(x) # => three three was a race horse, two two was one too.
String. Replace Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает новую строку, в которой все вхождения заданного знака Юникода или String в текущей строке заменены другим заданным знаком Юникода или String.
Перегрузки
Возвращает новую строку, в которой все вхождения заданного знака Юникода в текущем экземпляре заменены другим заданным знаком Юникода.
Возвращает новую строку, в которой все вхождения заданной строки в текущем экземпляре заменены другой заданной строкой.
Возвращает новую строку, в которой все вхождения заданной строки в текущем экземпляре заменены другой заданной строкой с использованием указанного типа сравнения.
Возвращает новую строку, в которой все вхождения заданной строки в текущем экземпляре заменены другой заданной строкой с использованием указанных языка и региональных параметры, а также учета регистра.
Replace(Char, Char)
Возвращает новую строку, в которой все вхождения заданного знака Юникода в текущем экземпляре заменены другим заданным знаком Юникода.
public: System::String ^ Replace(char oldChar, char newChar);
public string Replace (char oldChar, char newChar);
member this.Replace : char * char -> string
Public Function Replace (oldChar As Char, newChar As Char) As String
Параметры
Заменяемый знак Юникода.
Знак Юникода для замены всех обнаруженных вхождений oldChar .
Возвращаемое значение
Строка, эквивалентная данному экземпляру, но с тем отличием, что все вхождения oldChar заменены на newChar . Если oldChar не обнаружен в текущем экземпляре метод возвращает текущий экземпляр без изменений.
Примеры
В следующем примере создается список значений, разделенных запятыми, заменяя пробелы между рядами чисел.
using namespace System; int main() < String^ str = "1 2 3 4 5 6 7 8 9"; Console::WriteLine( "Original string: \"\"", str ); Console::WriteLine( "CSV string: \"\"", str->Replace( ' ', ',' ) ); > // // This example produces the following output: // Original string: "1 2 3 4 5 6 7 8 9" // CSV string: "1,2,3,4,5,6,7,8,9" //
String str = "1 2 3 4 5 6 7 8 9"; Console.WriteLine("Original string: \"\"", str); Console.WriteLine("CSV string: \"\"", str.Replace(' ', ',')); // This example produces the following output: // Original string: "1 2 3 4 5 6 7 8 9" // CSV string: "1,2,3,4,5,6,7,8,9"
let str = "1 2 3 4 5 6 7 8 9" printfn $"Original string: \"\"" printfn $"CSV string: \"\"" // This example produces the following output: // Original string: "1 2 3 4 5 6 7 8 9" // CSV string: "1,2,3,4,5,6,7,8,9"
Class stringReplace1 Public Shared Sub Main() Dim str As [String] = "1 2 3 4 5 6 7 8 9" Console.WriteLine("Original string: """"", str) Console.WriteLine("CSV string: """"", str.Replace(" "c, ","c)) End Sub End Class ' This example produces the following output: ' Original string: "1 2 3 4 5 6 7 8 9" ' CSV string: "1,2,3,4,5,6,7,8,9"
Комментарии
Этот метод выполняет порядковый поиск (с учетом регистра и без учета языка и региональных параметров) для поиска oldChar .
Этот метод не изменяет значение текущего экземпляра. Вместо этого он возвращает новую строку, в которой все вхождения oldChar заменяются newChar на .
Так как этот метод возвращает измененную строку, можно связать последовательные Replace вызовы метода для выполнения нескольких замен в исходной строке. Вызовы методов выполняются слева направо. Ниже приведен пример.
String s = new String('a', 3); Console.WriteLine("The initial string: ''", s); s = s.Replace('a', 'b').Replace('b', 'c').Replace('c', 'd'); Console.WriteLine("The final string: ''", s); // The example displays the following output: // The initial string: 'aaa' // The final string: 'ddd'
let s = new string('a', 3) printfn $"The initial string: ''" let s2 = s.Replace('a', 'b').Replace('b', 'c').Replace('c', 'd') printfn $"The final string: ''" // The example displays the following output: // The initial string: 'aaa' // The final string: 'ddd'
Module Example Public Sub Main() Dim s As New String("a"c, 3) Console.WriteLine("The initial string: ''", s) s = s.Replace("a"c, "b"c).Replace("b"c, "c"c).Replace("c"c, "d"c) Console.WriteLine("The final string: ''", s) End Sub End Module ' The example displays the following output: ' The initial string: 'aaa' ' The final string: 'ddd'
См. также раздел
- Char
- Concat(Object)
- Insert(Int32, String)
- Join(String, String[])
- Remove(Int32, Int32)
- Split(Char[])
- Substring(Int32)
- Trim(Char[])
Применяется к
Replace(String, String)
Возвращает новую строку, в которой все вхождения заданной строки в текущем экземпляре заменены другой заданной строкой.
public: System::String ^ Replace(System::String ^ oldValue, System::String ^ newValue);
public string Replace (string oldValue, string newValue);
public string Replace (string oldValue, string? newValue);
member this.Replace : string * string -> string
Public Function Replace (oldValue As String, newValue As String) As String
Параметры
Строка, которую требуется заменить.
Строка для замены всех вхождений oldValue .
Возвращаемое значение
Строка, эквивалентная текущей строке, но с тем отличием, что все вхождения oldValue заменены на newValue . Если oldValue не обнаружен в текущем экземпляре метод возвращает текущий экземпляр без изменений.
Исключения
oldValue имеет значение null .
oldValue является пустой строкой («»).
Примеры
В следующем примере показано, как можно использовать Replace метод для исправления орфографической ошибки.
using namespace System; int main() < String^ errString = "This docment uses 3 other docments to docment the docmentation"; Console::WriteLine( "The original string is:\n''\n", errString ); // Correct the spelling of S"document". String^ correctString = errString->Replace( "docment", "document" ); Console::WriteLine( "After correcting the string, the result is:\n''", correctString ); > // // This code example produces the following output: // // The original string is: // 'This docment uses 3 other docments to docment the docmentation' // // After correcting the string, the result is: // 'This document uses 3 other documents to document the documentation' //
string errString = "This docment uses 3 other docments to docment the docmentation"; Console.WriteLine("The original string is:''", Environment.NewLine, errString); // Correct the spelling of "document". string correctString = errString.Replace("docment", "document"); Console.WriteLine("After correcting the string, the result is:''", Environment.NewLine, correctString); // This code example produces the following output: // // The original string is: // 'This docment uses 3 other docments to docment the docmentation' // // After correcting the string, the result is: // 'This document uses 3 other documents to document the documentation' //
open System let errString = "This docment uses 3 other docments to docment the docmentation" printfn $"The original string is:''" // Correct the spelling of "document". let correctString = errString.Replace("docment", "document") printfn $"After correcting the string, the result is:''" // This code example produces the following output: // // The original string is: // 'This docment uses 3 other docments to docment the docmentation' // // After correcting the string, the result is: // 'This document uses 3 other documents to document the documentation' //
Public Class ReplaceTest Public Shared Sub Main() Dim errString As String = "This docment uses 3 other docments to docment the docmentation" Console.WriteLine("The original string is:''", Environment.NewLine, errString) ' Correct the spelling of "document". Dim correctString As String = errString.Replace("docment", "document") Console.WriteLine("After correcting the string, the result is:''", Environment.NewLine, correctString) End Sub End Class ' ' This code example produces the following output: ' ' The original string is: ' 'This docment uses 3 other docments to docment the docmentation' ' ' After correcting the string, the result is: ' 'This document uses 3 other documents to document the documentation' '
Комментарии
Если newValue имеет значение null , все вхождения oldValue удаляются.
Этот метод не изменяет значение текущего экземпляра. Вместо этого он возвращает новую строку, в которой все вхождения oldValue заменяются newValue на .
Этот метод выполняет порядковый поиск (с учетом регистра и без учета языка и региональных параметров) для поиска oldValue .
Так как этот метод возвращает измененную строку, можно связать последовательные Replace вызовы метода для выполнения нескольких замен в исходной строке. Вызовы методов выполняются слева направо. Ниже приведен пример.
String s = "aaa"; Console.WriteLine("The initial string: ''", s); s = s.Replace("a", "b").Replace("b", "c").Replace("c", "d"); Console.WriteLine("The final string: ''", s); // The example displays the following output: // The initial string: 'aaa' // The final string: 'ddd'
let s = "aaa" printfn $"The initial string: ''" let s2 = s.Replace("a", "b").Replace("b", "c").Replace("c", "d") printfn $"The final string: ''" // The example displays the following output: // The initial string: 'aaa' // The final string: 'ddd'
Module Example Public Sub Main() Dim s As String = "aaa" Console.WriteLine("The initial string: ''", s) s = s.Replace("a", "b").Replace("b", "c").Replace("c", "d") Console.WriteLine("The final string: ''", s) End Sub End Module ' The example displays the following output: ' The initial string: 'aaa' ' The final string: 'ddd'
См. также раздел
- Concat(Object)
- Insert(Int32, String)
- Join(String, String[])
- Remove(Int32, Int32)
- Split(Char[])
- Substring(Int32)
- Trim(Char[])
Как заменить символ в строке на языке Си?
При сборке вылезает *warning: assignment to ‘char’ from ‘char ‘ makes integer from pointer without a cast [-Wint-conversion]. Запуск программы выводит вместо ожидаемого «RWE», «DWE».
Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 18 июн 2020 в 21:17
Dart Revan Dart Revan
9 1 1 серебряный знак 4 4 бронзовых знака
18 июн 2020 в 21:32
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
В языке С двойные кавычки » обозначают строку, массив с завершаешим нуливым символом \0 а одинарные кавычки ‘ одиночный символ, если вы хотите на определном месте строки переписат символ нужно указать что вы переписываете символ.
name[0] = 'R';
а не пытаетесь на место символа записать строку.
Отслеживать
ответ дан 19 июн 2020 в 3:30
3,030 1 1 золотой знак 11 11 серебряных знаков 20 20 бронзовых знаков
В си по-разному записываются символы и строки (символы в одинарных кавычках, строки — в двойных). При этом строка — это просто массив символов. Поэтому «R» имеет тип const char* (т.е. константный указатель на массив символов)
В строке name[0] = «R»; Вы пытаетесь присвоить символу строку (т.е. указатель), из-за чего компилятор производит неявное преобразование (о чем, собственно, Вас и предупреждает)
Исправьте двойные кавычки вокруг R на одинарные.
Отслеживать
ответ дан 19 июн 2020 в 3:36
53 5 5 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Замена символа в строке в Python
В Python, строка является неизменяемым типом данных. Это означает, что после того, как строка создана, ее содержимое не может быть изменено. Вот пример:
Алексей Кодов
Автор статьи
7 июля 2023 в 17:18
В Python, строка является неизменяемым типом данных. Это означает, что после того, как строка создана, ее содержимое не может быть изменено. Вот пример:
s = "hello world" s[4] = 'a'
Попытка выполнить эти команды приведет к ошибке TypeError: ‘str’ object does not support item assignment , что означает, что строки в Python не поддерживают присвоение элементов.
Тем не менее, задача замены одного символа в строке встречается довольно часто. Для решения данной задачи можно использовать различные подходы.
Использование срезов строк
Один из подходов — использовать срезы строк. В Python можно получить любую часть строки, указав индекс начала и конца среза. Вот пример:
s = "hello world" new_s = s[:4] + 'a' + s[5:]
В этом примере создается новая строка, которая состоит из первых четырех символов исходной строки, затем добавляется новый символ, а затем добавляется оставшаяся часть исходной строки.
Использование метода replace()
Еще один подход — использовать метод replace() , который предоставляет Python для работы со строками. Этот метод позволяет заменить все вхождения одной подстроки на другую. Вот пример:
s = "hello world" new_s = s.replace('o', 'a')
В этом примере метод replace() используется для замены всех вхождений символа ‘o’ на символ ‘a’. Однако стоит помнить, что этот метод заменяет все вхождения, а не одно конкретное.
Использование преобразования строки в список
Еще один подход — преобразовать строку в список, изменить нужный элемент и затем преобразовать список обратно в строку. Вот пример:
s = "hello world" s_list = list(s) s_list[4] = 'a' new_s = ''.join(s_list)
В этом примере строка преобразуется в список символов, затем нужный символ заменяется на новый, а затем список преобразуется обратно в строку с помощью метода join() .