|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2006
Città: dietro di te!
Messaggi: 340
|
[java]Mettere un int in un Array String.
Buondì,
sono sempre qui a chiedere consiglio. ho bisogno (come da titolo) di mettere un int in un array di tipo string. una cosa del genere: int m =3; String [] appoggio={"ciao","ola"}; appoggio[1]=m; system.out.println(appoggio[1]); qui mi da: bad type in assignment perche cerco di mettere un int in una string. consigli? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Grazie al metodo statico toString(int) in class Integer:
Codice:
int m = 3; appoggio[1] = Integer.toString(m); Se devi fare poi il contrario, cioè leggere la String che rappresenta l'intero e riconvertirlo al tipo int basta questo: Codice:
int m2 = Integer.parseInt(appoggio[1]); Ultima modifica di banryu79 : 19-02-2008 alle 12:45. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2006
Città: dietro di te!
Messaggi: 340
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2006
Città: dietro di te!
Messaggi: 340
|
che tipo di errore è:
Bad 'switch' selector type: java.lang.String Ultima modifica di Killer Application : 19-02-2008 alle 12:54. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
Se non erro funziona anche il trucchetto
Codice:
int m = 3; appoggio[1] = ""+m; |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
Quote:
Codice:
int i=1;
switch(i){
case 1:
stampa("ciao");
break;
Default:
break;
}
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2006
Città: dietro di te!
Messaggi: 340
|
Altro errore dalla missione impossibile... che vuol dire?
NullPointerException: at java.lang.String.compareTo(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) |
|
|
|
|
|
#8 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
Codice:
appoggio[1] = new Integer(m); |
|
|
|
|
|
|
#9 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
1) ti sei scordato di inizializzarlo (ma in quel caso il compilatore almeno per le variabili locali dovrebbe avvisarti) 2) l'hai utilizzato erroneamente dopo averlo messo a null |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2006
Città: dietro di te!
Messaggi: 340
|
ok questo è il codice:
in sintesi ecco quello che fa. praticamente fa un bubblesort su una matrice [2] nella quale in [0] ci sono i codici fiscali mescolati mentre in [1] c'ho messo la loro posizione nella matrice d'origine Codice:
idmax=10;
String [][] nappoggio = new String [idMax][2];
for (m=0;m<idMax;m++)
{
if(matrice[m][4].equals("//")==false){ //qui evito che nella matrice d'origine ci sia cf e non il //
nappoggio[n][0]=matrice[m][4]; //qui copio il cf in appoggio
nappoggio[n][1]=Integer.toString(m);//qui metto nella posizione 1 il valore dell'indice della matrice d'origine
n++;
}
}
i = idMax;
while(i>0)
{
for(int j=0; j < i-1; j++)
{
a=j+1;
if(nappoggio[j][0].compareTo(nappoggio[a][0])>0){ //qui faccio il bubblesort
cambio(nappoggio,j,a);}
}
i--;
}
Codice:
void cambio(String nappoggio[][], int j, int a)
{
for(k=0;k<2;k++){
String obk;
obk= nappoggio[j][k];
nappoggio[j][k]=nappoggio[a][k];
nappoggio[a][k]=obk;
}
}
|
|
|
|
|
|
#11 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
la riga che causa l'errore è questa:
Codice:
if(nappoggio[j][0].compareTo(nappoggio[a][0])>0){ //qui faccio il bubblesort
quello che accade è che tenti di chiamare il metodo compareTo su una stringa che ancora non hai messo nell'array: di conseguenza nell'array in quella locazione ci trovi null e scatta l'eccezione. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2006
Città: dietro di te!
Messaggi: 340
|
ok il problema l'ho risolto rileggendo l'argoritmo di inizializzazione della matrice come da voi suggerito!
adesso ho un'altro problema ho un Codice:
char risp; Codice:
risp=System.in.read(); oppure se creo uno Codice:
scanner scan = new scanner (System.in) risp=scan.next(); ???
|
|
|
|
|
|
#14 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
|
|
|
|
|
#15 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
Codice:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line = reader.readLine(); |
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
oppure semplicemente:
Codice:
String input = System.console().readLine("inserisci stringa: ");
Codice:
char c = (char) System.in.read(); ps. per dirla tutta System.in.read() potrebbe restituire -1 nel caso in cui si raggiunge la fine dello stream, ma sono abbastanza confidente del fatto che nel caso dello standard input questo non accada :F in ogni caso gestire la possibile eccezione non guasta Ultima modifica di k0nt3 : 19-02-2008 alle 18:44. |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
Codice:
public class TestClass {
public static void main(String[] args) {
String[] x=new String[10];
int m=10;
x[0]=new Integer(m);
}
}
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
il problema secondo me è concettuale. aldilà del fatto che si può convertire l'int in stringa e poi riconvertirlo in int... è sbagliato mettere un int in un array di String. penso che sicuramente esista una soluzione migliore
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
Sono d'accordo con te! Solo che 71104 diceva di poter assegnare ad una stringa un integer, il fatto che però non abbiano nessun grado di parentela mi rendeva dubbioso... difatti in compilazione ho "Type mismatch: cannot convert from Integer to String". Vabbè poco male!
|
|
|
|
|
|
#20 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() hai ragione, infatti da errore ero convintissimo di aver provato scrivendo: Codice:
String asd = new Integer(5); Codice:
String asd = new Integer(5).toString(); sarà che ho avuto una giornataccia -.- |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:44.





















