Replace a character at a specific index in a string?
String are immutable in Java. You can't change them.
You need to create a new string with the character replaced.
String myName = "domanokz";
String newName = myName.substring(0,4)+'x'+myName.substring(5);
Or you can use a StringBuilder:
StringBuilder myName = new StringBuilder("domanokz");
myName.setCharAt(4, 'x');
System.out.println(myName);
How do I replace a character at a particular index in JavaScript?
In JavaScript, strings are immutable, which means the best you can do is to create a new string with the changed content and assign the variable to point to it.
You'll need to define the replaceAt()
function yourself:
String.prototype.replaceAt = function(index, replacement) {
return this.substring(0, index) + replacement + this.substring(index + replacement.length);
}
And use it like this:
var hello = "Hello World";
alert(hello.replaceAt(2, "!!")); // He!!o World
How to replace one character at a specific index in a string
"So for a more concrete example, this is what I have and what I want to do: ...
... So is there any other way I can do this, or help me understand why I'm getting a seg fault?"
//I want to do this
input.at(2) = "a"; //obviously this doesn't work
It doesn't work, because "a"
actually provides a const char*
pointer, and not a char
as required by std::string::at()
.
Use a simple character literal, not a c-style string literal:
input.at(2) = 'a';
// ^^^
"When I try
input.insert(2,a);
, andcout << input
I getbb$bbbbb
followed by a seg fault message on the next line."
Besides std::string::insert()
doesn't provide replacement of a character at the given position, but inserts one or more characters there, you may have an uninitialized char* a
passed here, causing a segfault. But to answer this part finally, you should specify what the variable a
actually is in this context.
Replacing a char at a given index in string?
Use a StringBuilder
:
StringBuilder sb = new StringBuilder(theString);
sb[index] = newChar;
theString = sb.ToString();
How do I replace a string at a index in python?
Without creating a list you could also do:
i = "hello!"
i = "H" + i[1:]
More general:
def change_letter(string, letter, index): # note string is actually a bad name for a variable
return string[:index] + letter + string[index+1:]
s = "hello!"
s_new = change_letter(s, "H", 0)
print(s_new)
# should print "Hello!"
Also note there is a built in function .capitalize()
How do I change characters at a specific index within a string in rust?
The easiest way is to use the replace_range()
method like this:
let mut hello = String::from("hello world");
hello.replace_range(3..4,"x");
println!("hello: {}", hello);
Output: hello: helxo world
(Playground)
Please note that this will panic if the range to be replaced does not start and end on UTF-8 codepoint boundaries. E.g. this will panic:
let mut hello2 = String::from("hell world");
hello2.replace_range(4..5,"x"); // panics because needs more than one byte in UTF-8
If you want to replace the nth UTF-8 code point, you have to do something like this:
pub fn main() {
let mut hello = String::from("hell world");
hello.replace_range(
hello
.char_indices()
.nth(4)
.map(|(pos, ch)| (pos..pos + ch.len_utf8()))
.unwrap(),
"x",
);
println!("hello: {}", hello);
}
(Playground)
How to replace a character in a string using index in clojure
Like almost everything commonly used in Clojure, strings are immutable, so you need to create a new string with the new character in place of the old at the desired location:
(defn replace-at [s idx replacement]
(str (subs s 0 idx) replacement (subs s (inc idx))))
> (replace-at "012345" 2 "x")
01x345
Related Topics
Equals VS Arrays.Equals in Java
Draw a Line in a Jpanel With Button Click in Java
How to Pretty Print Xml from Java
Overriding the Java Equals() Method - Not Working
Should I Always Use a Parallel Stream When Possible
Received Fatal Alert: Handshake_Failure Through Sslhandshakeexception
Why Is the Java Main Method Static
Regex For Splitting a String Using Space When Not Surrounded by Single or Double Quotes
Display Java.Util.Date in a Specific Format
How to Convert List≪Integer≫ to Int[] in Java