Flash CS4 Professional ActionScript 2.0

Utilización de operadores con cadenas

Los operadores de comparación convierten un operando al tipo del otro si los tipos de datos son distintos. Si un operando es una cadena y el otro es un número, ActionScript convierte el operando de tipo cadena en un número y realiza una comparación numérica. Una excepción de esta regla es el operador de igualdad estricta (===), que hace lo mismo que el operador de igualdad (==) con la diferencia de que los tipos de datos no se convierten. El resultado es true si ambas expresiones, incluidos sus tipos de datos, son iguales. Para más información sobre operadores numéricos, consulte Utilización de operadores numéricos.

Salvo en el caso del operador de igualdad (==), los operadores de comparación (>, >=, < y <=) afectan a las cadenas de manera diferente a cuando operan en otros valores.

Los operadores de comparación comparan cadenas para determinar cuál de ellas es la primera por orden alfabético. Las cadenas con caracteres en mayúsculas preceden a las cadenas en minúsculas. Dicho de otro modo, "Egg" va antes que "chicken".

var c:String = "chicken";
var e:String = "Egg";
trace(c < e); // false
var riddleArr:Array = new Array(c, e);
trace(riddleArr); // chicken,Egg
trace(riddleArr.sort()); // Egg,chicken

En este código ActionScript, el método sort() de la clase Array reordena el contenido de la matriz alfabéticamente. Observará que el valor "Egg" va antes que el valor "chicken", ya que la E mayúscula va antes que la c minúscula. Si desea comparar las cadenas con independencia de si están en mayúsculas o en minúsculas, deberá convertir las cadenas a mayúsculas o minúsculas antes de compararlas. Para más información sobre operadores de comparación, consulte Operadores de igualdad y Utilización de operadores relacionales y de igualdad.

Puede utilizar los métodos toLowerCase() o toUpperCase() para convertir cadenas a mayúsculas o minúsculas antes de compararlas. En el siguiente ejemplo, ambas cadenas se convierten a minúsculas y se comparan, por lo que chicken va a ahora antes que egg:

var c:String = "chicken";
var e:String = "Egg";
trace(c.toLowerCase() < e.toLowerCase()); // true

NOTA

 

Los operadores de comparación sólo comparan dos cadenas. Por ejemplo, los operadores no comparan los valores si un operando es un valor numérico. Si solamente uno de los operandos es una cadena, ActionScript convierte ambos operandos en números y realiza una comparación numérica.

Puede utilizar operadores para manipular cadenas. Puede utilizar el operador de suma (+) para concatenar operandos que sean cadenas. Puede que ya haya utilizado el operador de suma para concatenar cadenas al escribir sentencias trace. Por ejemplo, podría escribir lo siguiente:

var myNum:Number = 10;
trace("The variable is " +  myNum + ".");

Al probar este código, el panel Salida mostrará lo siguiente:

The variable is 10.

En el siguiente ejemplo, la sentencia trace utiliza el operador + para concatenar en lugar de sumar. Al manipular cadenas y números, a veces Flash concatena en lugar de sumar numéricamente.

Por ejemplo, podría concatenar dos cadenas de variables diferentes en un único campo de texto. En el siguiente código ActionScript, la variable myNum se concatena con una cadena y dicha cadena se muestra en el campo de texto myTxt del escenario.

this.createTextField("myTxt", 11, 0, 0, 100, 20);
myTxt.autoSize = "left";
var myNum:Number = 10;
myTxt.text = "One carrot. " + myNum + " large eggplants.";
myTxt.text += " Lots of vegetable broth.";

Este código da el siguiente resultado en un campo de texto con el nombre de instancia myTxt:

One carrot. 10 large eggplants. Lots of vegetable broth.

En el ejemplo anterior, se muestra cómo utilizar los operadores de suma (+) y asignación de suma (+=) para concatenar cadenas. Observe cómo la tercera línea del código utiliza el operador de suma para concatenar el valor de la variable myNum en el campo de texto, mientras que la cuarta línea del código utiliza el operador de asignación de suma para concatenar una cadena con el valor existente del campo de texto.

Si sólo uno de los operandos de cadena de texto es realmente una cadena, Flash convierte el otro operando en una cadena. Por consiguiente, el valor de myNum se convierte en una cadena en el ejemplo anterior.

NOTA

 

ActionScript trata los espacios del comienzo o del final de una cadena como parte literal de la cadena.