¿Cómo puedo eliminar un £ símbolo de un objeto de matriz y guardarlo?

Aaron:

Estoy codificación de una conversacional básico para un proyecto de la Universidad. Estoy hasta un punto donde el usuario debe establecer un presupuesto mediante la introducción de una cantidad. Por el momento, el programa es capaz de buscar un número en el mensaje del usuario y guardarlo correctamente. Sin embargo, cuando una señal de £ se antepone a la misma, no puede guardar como un entero debido a tener el signo de número en el mensaje.

Este es mi código:

//Scan the user message for a budget amount and save it.
    for (int budgetcount = 0; budgetcount < words.length; budgetcount++) 
    {
        if (words[budgetcount].matches(".*\\d+.*"))
        {
            if (words[budgetcount].matches("\\u00A3."))
            {
                words[budgetcount].replace("\u00A3", "");
                System.out.println("Tried to replace a pound sign");
                ResponsesDAO.budget = Integer.parseInt(words[budgetcount]);
            }
            else
            {
                System.out.println("Can't find a pound sign here.");
            }
        }

He tratado previamente .contains (), y otras formas de indicar que es un signo de que yo quiero quitar pero todavía conseguir el "No se puede encontrar una muestra de la libra aquí." imprimir.

Si alguien puede ofrecer consejos o corregir mi código lo agradecería enormemente.

¡Gracias por adelantado!

user2004685:

Stringsen JAVA son inmutables. Va a sustituir, pero nunca volver asignar el resultado a words[budgetcount].

Cambie la siguiente línea en su código,

words[budgetcount] = words[budgetcount].replace("\u00A3", "");

Aquí hay otra manera de hacerlo utilizando Character.isDigit(...)para identificar a un dígito y tejer un dígito de sólo cadena que más tarde se puede analizar como un entero,

Fragmento de código:

private String removePoundSign(final String input) {
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < input.length(); i++) {
        char ch = input.charAt(i);
        if (Character.isDigit(ch)) {
            builder.append(ch);
        }
    }
    return builder.toString();
}

Entrada:

System.out.println(removePoundSign("£12345"));

Salida:

12345

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=204164&siteId=1
Recomendado
Clasificación