2010-05-14 7 views
5

¿Qué es lo opuesto a String.charAt()?Cambiar un carácter en una cadena mediante Actionscript

si tengo una cadena:

var Str:String="Hello World";

¿Cómo cambio el quinto carácter, por ejemplo, de un '' a un '_'?

puedo conseguir el carácter quinto de esta manera:

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

Pero ¿Cómo se configura el quinto personaje?

Gracias de antemano.

Respuesta

10

Hay muchas maneras de despellejar a este gato. Uno, de la parte superior de mi cabeza, implicaría String.substr:

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

o, al igual que el anterior, pero más generalizado:

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

no se puede establecer ningún carácter. Las cadenas en ECMAScript (incluido ActionScript) son inmutables. Una cosa que puede hacer es construir una nueva cadena que contenga los caracteres deseados, como se propone aquí.

Sin embargo, si va a modificar mucho la cadena, lo mejor es tener una matriz de caracteres, que puede mutar a voluntad. Cuando necesite imprimirlo, simplemente lo join con "" como separador.

Greetz
back2dos

1

Esa respuesta fue una gran ayuda, pero creo que los theres una manera más facil. Supongamos que quiere reemplazar el 4º carácter de una cuerda llamada B por la letra "w". Puede utilizar

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

Im usando CS4 flash con ActionScript 3.0, si se duerma trabaja con alguien, que me haga saber. Si hay una manera aún mejor de hacerlo, házmelo saber también.

+0

El método charAt() devuelve el carácter en el índice especificado en una cadena. El índice del primer carácter es 0, el segundo carácter es 1, y así sucesivamente. Por lo tanto, el código tiene que ser 'B = B.replace (B.charAt (3)," w ");' –

+0

verifique la respuesta debajo de – ThanksBro

+0

Esta solución no es preferible, porque 'replace()' reemplazará la primera instancia que encuentre del personaje recuperado de 'charAt (4)' y no necesariamente de la instancia en el índice 4. Si B == "bellborn", se convertiría en "wellborn" en lugar de "bellworn". – ruffenman

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