Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Duda separar cadena con split

Hola, estoy haciendo una calculadora en java, y lo que se ingresa por linea de comandos es "calcula (numero,numero)". Esto tiene que sacar la suma, la resta y la multiplicación de esos números. Mi pregunta es como puedo obtener los números que ha introducido el usuario? Segun me han comentado con el método split se puede hacer pero no se como hacerlo para solo cojer los números y quitarle los parentesis y la coma. Muchas gracias de antemano.

noviembre 25, 2014 | Unregistered CommenterRuben

Se resuelve con los métodos indexOf, lastIndexOf, subString y split de la clase String

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

noviembre 25, 2014 | Registered Commenterchoces

Hola Ruben.
Tambien podes utilizar las clases Pattern y Matcher para lograr tu cometido.
Aqui un ejemplo:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SepararCadena {

private static final String PATRON_DE_COMPARACION = "\\((\\d+),(\\d+)\\)";

public static void main(String[] args) {
Pattern patron;
Matcher comparador;
String primerNumero;
String segundoNumero;

//Este seria el texto leido desde la linea de comandos.
String cadenaDeEjemplo = "Calcula (10,20)";

patron = Pattern.compile(PATRON_DE_COMPARACION);
comparador = patron.matcher(cadenaDeEjemplo);

if (comparador.find()) {
primerNumero = comparador.group(1);
segundoNumero = comparador.group(2);
System.out.println("Primer numero: " + primerNumero + ". Segundo numero: " + segundoNumero);
//Suma de ejemplo.
int p = Integer.parseInt(primerNumero);
int s = Integer.parseInt(segundoNumero);
System.out.println("La suma es: " + (p + s));
}
}
}

Espero que te sirva.
Saludos.

noviembre 26, 2014 | Registered Commenteralaguslaz

Buenas,

En mi opinión la oopcion pro para hacer esto es la que te comenta alaguslaz,
pero igual te suspenden por copiar XD

una manera rudimentaria, manejando Strings y metodos basicos de esta clase, seria la siguiente:


String a= "calcula(1,3)";
a=a.replace("calcula", "");//reemplaza "calcula" por nada---> (1,3)"
//split(",") divide el string
//substring devuelve parte de un String
//Integer.parseInt convierte en int un String que representa a un numero
int numeroA= Integer.parseInt(a.split(",")[0].substring(1));
int numeroB= Integer.parseInt(a.split(",")[1].substring(0,a.split(",")[1].length()-1));


Esto funcionar, funciona, pero no es lo optimo

Pruebalo, juega con ello, y diviertete con Java ;)

Saludos,

Oldskultxo

diciembre 1, 2014 | Registered Commenteroldskultxo

String cadena="calcula(123,123)";
Double numero1= Double.parseDouble(cadena.substring(cadena.indexOf("(")+1, cadena.indexOf(",")));
Double numero2= Double.parseDouble(cadena.substring(cadena.indexOf(",")+1, cadena.indexOf(")")));
System.out.println(numero1+numero2);

diciembre 2, 2014 | Registered Commenternelsonxx1