Pagina 1 di 1

[java][risolto]min e max da stringa

Inviato: mercoledì 1 marzo 2017, 10:22
da CRIMON
salve, stavo provando a fare questo eserizio: prendo una stringa da tastiera e in output stampo il massimo e numero della stringa, io l' ho visto così ma non so perchè mi sembra che salvi e stampi i codici unicode

Codice: Seleziona tutto

import prog.io.*;
public class maxmin {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ConsoleInputManager in = new ConsoleInputManager();
		String s = in.readLine("inserire seq SOLO NUMERI");
		int min = 10;
		int max = 0;
		for ( int i = 0; i < s.length(); i++){
			char k = s.charAt(i);
				if(Character.isDigit(k)){
					int x = new Integer(s.charAt(i));
					if(x>max)
						max = k;
					else 	
						if(x<min)
						min = k;
					
				}
		}
		System.out.println(min + " e " + max);
	}

}

Re: min e max da stringa

Inviato: mercoledì 1 marzo 2017, 12:18
da nuzzopippo
"s.charAt(i)" ti da un char, che è un numero devi utilizzare substring

Re: min e max da stringa

Inviato: mercoledì 1 marzo 2017, 12:40
da CRIMON
scusa, ma se uso substring ho ancora una stringa, non posso applicarci isdigit, come lo dovrei riconoscere il numero

Re: min e max da stringa

Inviato: mercoledì 1 marzo 2017, 12:51
da toro2k

Codice: Seleziona tutto

int x = new Integer(s.charAt(i));
Questa istruzione assegna a x il valore UTF-16 del carattere s.charAt(i). (tra l'altro dovrebbe bastare int x = s.charAt(i), Integer non serve).
Per avere il valore numerico della cifra corrispondente al carattere devi usare:

Codice: Seleziona tutto

int x = Character.getNumericValue(s.charAt(i));
Vedi http://docs.oracle.com/javase/7/docs/ap ... alue(char) per maggiori dettagli.

Re: min e max da stringa

Inviato: mercoledì 1 marzo 2017, 13:36
da nuzzopippo
CRIMON [url=http://forum.ubuntu-it.org/viewtopic.php?p=4963044#p4963044][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:scusa, ma se uso substring ho ancora una stringa, non posso applicarci isdigit, come lo dovrei riconoscere il numero

Codice: Seleziona tutto

Integer.parseInt(stringa.substring(i,i+1));
Il metodo Te lo avevo già mostrato, con i link delle classi, in questo Tuo post, se guardi, poi i costruttori della classe Integer vedrai che supporta i valori numerici e quelli stringa.
Constructor Summary
Constructors Constructor and Description
Integer(int value)
Constructs a newly allocated Integer object that represents the specified int value.
Integer(String s)
Constructs a newly allocated Integer object that represents the int value indicated by the String parameter.
Perciò un eventuale

Codice: Seleziona tutto

int x = new Integer(s.substring(i,i+1));
sarebbe anche andato bene, a patto che si fosse in presenza in una stringa rappresentante un numero.

[Edit] - giacchè ci sono, controlla bene i valori che assegni a massimo e minimo.

Re: min e max da stringa

Inviato: giovedì 2 marzo 2017, 14:05
da CRIMON
ho terminato qusto esercizio, grazi