Изменить символ в строке с помощью Actionscript

Что является противоположностью String.charAt()??

Если у меня есть строка:

var Str:String="Hello World";

Как мне изменить 5-й символ, например, с "" на "_"?

Я могу получить 5-й символ, как это:

var C:String=Str.charAt(5);

Но как мне установить 5-й символ?

Заранее спасибо.

4 ответа

Решение

Есть много способов снять шкуру с этой кошки. Один, от макушки моей головы, будет связан с String.substr:

var Str:String="Hello World"
var newStr:String = Str.substr(0,5) + "_" + Str.substr(6);

или то же, что и выше, но более обобщенно:

function setCharAt(str:String, char:String,index:int):String {
    return str.substr(0,index) + char + str.substr(index + 1);
}

Вы не можете установить какие-либо символы. Строки в ECMAScript (включая ActionScript) являются неизменяемыми. Одна вещь, которую вы можете сделать, - это создать новую строку, содержащую нужные символы, как предложено здесь.

Однако, если вы планируете много изменить строку, лучше всего иметь массив символов, которые вы можете изменять по своему желанию. Когда вам нужно распечатать его, вы просто join это с "" в качестве разделителя.

Greetz
back2dos

//Replacing "/" with "-"
var str:String = "he/ll/o"
str = str.split("/").join("-"); //str = he-ll-o

Этот ответ был такой большой помощью, но я думаю, что есть более простой способ. Предположим, вы хотите заменить 4-й символ строки с именем B на букву "w". Ты можешь использовать

B = B.replace(B.charAt(4), "w");

Я использую Flash CS4 с ActionScript 3.0, если он не работает с кем-то, дайте мне знать. Если есть еще лучший способ сделать это, дайте мне знать, а также.

Другие вопросы по тегам