Equivalente di eval js in Java

di il
2 risposte

Equivalente di eval js in Java

Buongiorno, sto creando un piccolo programmino che effettua la conversione di un numero romano a arabo e viceversa.
Nel convertire un romano a uno arabo ho la necessità di cambiare segno in base alla cifra che "incontro" seguendo le regole di conversione.
	public int toArabic() {
		int dim= this.number.length(), arabo=0;
		char segno;
		for(int i=dim-1;i>=1;i--) {
			if(ConvertiNumero.getValueArab(this.number.charAt(i))>ConvertiNumero.getValueArab(this.number.charAt(i-1)))
				segno='-';
			else segno='+';
			/* ---> QUESTO! arabo= Integer.parseInt(number, ConvertiNumero.getValueArab(this.number.charAt(i))+segno+arabo);*/
		}
		return arabo;
	}
number è una stringa privata appartenente alla classe e rappresenta il numero che sia romano o arabo.
getValueArab è una funzione statica che non fa altro che restituire il corrispettivo valore arabo dato uno romano.
Cosa potrei utilizzare in Java per risolvere un espressione matematica concatenata in una stringa? In caso non fosse molto affidabile questa funzione simile alla eval di js, come potrei fare?
Grazie in anticipo!

2 Risposte

  • Re: Equivalente di eval js in Java

    mark22 ha scritto:


    Cosa potrei utilizzare in Java per risolvere un espressione matematica concatenata in una stringa?
    Per valutare e "risolvere" espressioni matematiche in stringa tipo

    String expr = "(4/6)*2";
    double ris = ...........

    esistono librerie Java apposite, basta cercare in rete.

    mark22 ha scritto:


    In caso non fosse molto affidabile questa funzione simile alla eval di js
    Non esiste in Java un "banale" equivalente della eval di Javascript. Java è un linguaggio compilato.


    Ad ogni modo, se devi passare da numero romano es "CXLV" a 145 o viceversa, di quello che hai chiesto NON serve assolutamente nulla.
    Serve solo un buon algoritmo con un pò di "logica".
  • Re: Equivalente di eval js in Java

    Che stupido che sono
    Ho risolto grazie!
Devi accedere o registrarti per scrivere nel forum
2 risposte