Перейти к содержимому

Как заменить букву в строке с

  • автор:

Какая функция нужна для замены символа в строке в 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() .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *