Изменить символ в строке с помощью Actionscript - PullRequest
5 голосов
/ 14 мая 2010

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

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

var Str:String="Hello World";

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

Я могу получить 5-й символ следующим образом:

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

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

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

Ответы [ 4 ]

10 голосов
/ 14 мая 2010

Есть много способов снять шкуру с этой кошки. Один, от макушки моей головы, будет связан с 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);
}
2 голосов
/ 14 мая 2010

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

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

Greetz
back2dos

1 голос
/ 09 декабря 2014
//Replacing "/" with "-"
var str:String = "he/ll/o"
str = str.split("/").join("-"); //str = he-ll-o
1 голос
/ 21 октября 2010

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

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

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

...