Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Xiaomi Pad 8 Pro adotta il potente Snapdragon 8 Elite all'interno di un corpo con spessore di soli 5,75 mm e pannello LCD a 144Hz flicker-free, per un tablet che può essere utilizzato con accessori dedicati di altissima qualità. Fra le caratteristiche esclusive, soprattutto per chi intende usarlo con la tastiera ufficiale, c'è la modalità Workstation di HyperOS 3, che trasforma Android in un sistema operativo con interfaccia a finestre
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-11-2008, 15:43   #1
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
[Java] Problema nello scrivere una classe di metodi utili per le stringhe

Per un primo esame di programmazione ad oggetti in Java la professoressa ha fatto in classe il seguente esercizio: scrivere una classe chiamata GestoreStringhe che contiene una serie di metodi utili per operare sulle stringhe, come: invertiStringa, verificaPalindromia, etcetc...

Io l'ho scritta commentandola e studiandomela...ma quando vado a compilarla il compilatore mi dà una serie di errori...in parte li ho risolti..ma questi che rimangono non riesco a risolverli...vi posto quà il codice della classe e l'elenco degli errori:

Classe GestoreStringhe:
Codice:
/* La classe GestoreStringhe è un contenitore di metodi utili per operare sulle stringhe */
public class GestoreStringhe{
	
	/* Metodo che prende due stringhe: nome e cognome; e che le unisce separandole con uno spazio e mettendo in maiuscolo
	   le due iniziali ed in minuscolotutto il resto.
	   Es: nome: "maRiO", cognome: "rOSsi" --> s = "Mario Rossi" */
	
	public static String trasformaInUna(String nome, String cognome){
		String s;
		
		s = nome.substring(0,1).toUppercase();
		s += nome.substring(1).toLowercase();
		s += " ";
		s += cognome.substring(0,1).toLowercase()+cognome.substring(1).toLowercase();
		
		return s;
	}
	
	/* Metodo che permette di invertire la stringa che prende come parametro. Es: Se il metodo viene invocato con la stringa
	   S="Roma", esso restituirà il riferimento all'oggetto di tipo String il cui valore è "amoR" */
	
	public static String invertiStringa(String s){
		String t;			// Stringa da restituire che conterrà l'inversa della stringa s
		int i;				// Variabile contatore
		
		t = 0;				// Inizializzazione: se s è vuota allora verrà restituita la stringa vuota
		
		/* Ciclo che copia in t i caratteri di s a partire dall'ultimo fino al primo */
		
		for(i=s.length()-1; i>=0; i--){	// Per i che parte dalla lunghezza di s meno 1 fino ad aver letto tutti i caratteri
			    t += s.substring(i,i+1);   // Concatena a t l'i-esimo carattere di s
	}			
		
		return t;
	}
	
	/* Metodo che permette di verificare se la stringa che prende come parametro è una stringa palindroma restituendo TRUE
	   se è vero, FALSE al contrario.
	   Es: S = "ama" --> restituisce TRUE, S = "ciao" --> restituisce FALSE */
	   
	public static boolean verificaPalindromia(String s){
		
		String t;		// Conterrà la stringa invertita
		t = invertiStringa(s);		// Inverte la stringa s e la mette in t
		
		return s.equals(t);		// Restituisce il risultato del test di uguaglianza tra s e t che può essere TRUE o FALSE
	}
	
	/* Metodo che permette di calcolare il prefisso comune delle due stringhe che prende come parametro */
	
	public static String calcolaPrefissoComune(String s, String t){
		
		int i, min;
		boolean trovato;	// Diventa TRUE quando si trova un carattere diverso fra s e t
		String pref;
		
		if(s.length() < t.length()) min = s.length();
		
		else min = t.length();
		
		trovato = false;	// Inizializzazione della variabile trovato a false poichè non è ancora stato trovato un carattere diverso fra s e t
		pref = "";			// Inizializzazione delle string pref con la stringa vuota, il prefisso comune è inizialmente nullo
		i = 0;				// Inizializzazione il contatore a 0
		
		while((i<min) && (!trovato)){		// Finchè il contatore è minore del possibile prefisso e non è stato ancora trovato un carattere diverso fra s e t
			if(s.substring(i,i+1).equals(t.substring(i,i+1))){		// Se l'i-esimo carattere delle 2 stringhe è uguale
				pref += s.substring(i,i+1);		// Concatena a pref l'i-esimo carattere comune alle 2 stringhe
				i++;							// Incrementa di uno il contatore per andare a testare il prossimo carattere
			}
			else trovato = true;		   // Altrimenti impostra trovato a true
	   }
	   
	   return pref;					// Restituisci il prefisso comune trovato
   }
}
ERRORI:

C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>javac TestGestoreStringhe.java
TestGestoreStringhe.java:11: cannot find symbol
symbol : method trasformaInUna(java.lang.String,java.lang.String)
location: class TestGestoreStringhe
String nomecognome = trasformaInUna(nome, cognome);
^
TestGestoreStringhe.java:13: cannot find symbol
symbol : method invertiStringa(java.lang.String)
location: class TestGestoreStringhe
String inversa = invertiStringa(a);
^
TestGestoreStringhe.java:15: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana1 = verificaPalindromia(a);
^
TestGestoreStringhe.java:17: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana2 = verificaPalindromia(c);
^
TestGestoreStringhe.java:19: cannot find symbol
symbol : method calcolaPrefissoComune(java.lang.String,java.lang.String)
location: class TestGestoreStringhe
String prefissocomune = calcolaPrefissoComune(a, b);
^
5 errors

C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>

Poi ho realizzato anche una classe TestGestoreSTringhe che contiene il main e dove testo i metodi scritti nella classe GestoreStringhe...anche quà ho degli errori...quando provo a compilare questa classe il compilatore è come se non vedesse i metodi definiti nella classe GestoreStringhe:

Codice:
class TestGestoreStringhe{
	/* Il metodo main è necessariamente un metodo di classe */
	public static void main(String[] args){
		
		String a = "Ciao";
		String b = "CiaoMondo";
		String c = "AMA";
		String nome = "maRiO";
		String cognome = "roSSi";
		
		String nomecognome = trasformaInUna(nome, cognome);
		
		String inversa = invertiStringa(a);
		
		boolean varbolleana1 = verificaPalindromia(a);
		
		boolean varbolleana2 = verificaPalindromia(c);
		
		String prefissocomune = calcolaPrefissoComune(a, b);
	}
	
}
ERRORI:


C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>javac TestGestoreStringhe.java
TestGestoreStringhe.java:11: cannot find symbol
symbol : method trasformaInUna(java.lang.String,java.lang.String)
location: class TestGestoreStringhe
String nomecognome = trasformaInUna(nome, cognome);
^
TestGestoreStringhe.java:13: cannot find symbol
symbol : method invertiStringa(java.lang.String)
location: class TestGestoreStringhe
String inversa = invertiStringa(a);
^
TestGestoreStringhe.java:15: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana1 = verificaPalindromia(a);
^
TestGestoreStringhe.java:17: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana2 = verificaPalindromia(c);
^
TestGestoreStringhe.java:19: cannot find symbol
symbol : method calcolaPrefissoComune(java.lang.String,java.lang.String)
location: class TestGestoreStringhe
String prefissocomune = calcolaPrefissoComune(a, b);
^
5 errors

C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>

Da che può dipendere tutto ciò?Come posso risolvere?

Grazie
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 15:46   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
basta che leggi il testo di ogni errore stampato: ti dice esattamente in che riga di quale file c'è l'errore, qual'è l'errore e il motivo del perchè c'è un errore.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 16:00   #3
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
ho dato un'occhiata veloce.. non dovresti mettere
Codice:
GestoreStringhe.
davanti alla chiamata di ogni metodo?
esempio:

Codice:
String nomecognome = GestoreStringhe.trasformaInUna(nome, cognome);
visto che questi metodi fanno parte di una classe e sono statici..
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 16:34   #4
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
basta che leggi il testo di ogni errore stampato: ti dice esattamente in che riga di quale file c'è l'errore, qual'è l'errore e il motivo del perchè c'è un errore.
eh ma questolosò...infatti gli altri errori che dava li avevo risolti guardando l'output che dava il compilatore...tranne che questi non riesco a capire da cosa dipendano e come risolverli...

Vedendo quello che dice il compilatore sembra che dipenda dai metodi toUpercase e toLoverCase ma non capisco perchè...come devo cambiare per risolverli?

TNX
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 17:07   #5
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Quote:
C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>javac TestGestoreStringhe.java
TestGestoreStringhe.java:11: cannot find symbol
symbol : method trasformaInUna(java.lang.String,java.lang.String)
location: class TestGestoreStringhe
String nomecognome = trasformaInUna(nome, cognome);
^
TestGestoreStringhe.java:13: cannot find symbol
symbol : method invertiStringa(java.lang.String)
location: class TestGestoreStringhe
String inversa = invertiStringa(a);
^
TestGestoreStringhe.java:15: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana1 = verificaPalindromia(a);
^
TestGestoreStringhe.java:17: cannot find symbol
symbol : method verificaPalindromia(java.lang.String)
location: class TestGestoreStringhe
boolean varbolleana2 = verificaPalindromia(c);
^
TestGestoreStringhe.java:19: cannot find symbol
symbol : method calcolaPrefissoComune(java.lang.String,java.lang.String)
location: class TestGestoreStringhe
String prefissocomune = calcolaPrefissoComune(a, b);
^
5 errors
Gli errori sono chiarissimi toUpperCase() e toLowerCase() non centrano nulla L'errore (in rosso) è semplicemente che non trova il simbolo (in blu) corrispondente alle tue chiamate nella tua classe TestGestoreStringhe.

Fai come suggerisce ndakota e mettici un bel GestoreStringhe. prima delle tue chiamate
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 17:18   #6
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
Quote:
Originariamente inviato da Don[ITA] Guarda i messaggi
Gli errori sono chiarissimi toUpperCase() e toLowerCase() non centrano nulla L'errore (in rosso) è semplicemente che non trova il simbolo (in blu) corrispondente alle tue chiamate nella tua classe TestGestoreStringhe.

Fai come suggerisce ndakota e mettici un bel GestoreStringhe. prima delle tue chiamate
quello l'ho fatto nella classe TestGestoreStringhe che ora l'ha compilata tranquillamente.

Il problema lo dà quando provo a compilare la classe GestoreStringhe che contiene la serie di metodi per operare sulle stringhe e mi dà QUESTI errori:

C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>javac GestoreStringhe.java
GestoreStringhe.java:11: cannot find symbol
symbol : method toUppercase()
location: class java.lang.String
s = nome.substring(0,1).toUppercase();
^
GestoreStringhe.java:12: cannot find symbol
symbol : method toLowercase()
location: class java.lang.String
s += nome.substring(1).toLowercase();
^
GestoreStringhe.java:14: cannot find symbol
symbol : method toLowercase()
location: class java.lang.String
s += cognome.substring(0,1).toLowercase()+cognome.substring(1).toLowercase();
^
GestoreStringhe.java:14: cannot find symbol
symbol : method toLowercase()
location: class java.lang.String
s += cognome.substring(0,1).toLowercase()+cognome.substring(1).toLowercase();
^
GestoreStringhe.java:26: incompatible types
found : int
required: java.lang.String
t = 0; // Inizializzazione: se s Þ vuota allora verrÓ restituita la strin

^
5 errors
dove i simboli sbagliati sono toUppercase e toLowercase
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 19:02   #7
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da D4rkAng3l Guarda i messaggi
quello l'ho fatto nella classe TestGestoreStringhe che ora l'ha compilata tranquillamente.

Il problema lo dà quando provo a compilare la classe GestoreStringhe che contiene la serie di metodi per operare sulle stringhe e mi dà QUESTI errori:

C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>javac GestoreStringhe.java
GestoreStringhe.java:11: cannot find symbol
symbol : method toUppercase()
location: class java.lang.String
s = nome.substring(0,1).toUppercase();
^
GestoreStringhe.java:12: cannot find symbol
symbol : method toLowercase()
location: class java.lang.String
s += nome.substring(1).toLowercase();
^
GestoreStringhe.java:14: cannot find symbol
symbol : method toLowercase()
location: class java.lang.String
s += cognome.substring(0,1).toLowercase()+cognome.substring(1).toLowercase();
^
GestoreStringhe.java:14: cannot find symbol
symbol : method toLowercase()
location: class java.lang.String
s += cognome.substring(0,1).toLowercase()+cognome.substring(1).toLowercase();
^
GestoreStringhe.java:26: incompatible types
found : int
required: java.lang.String
t = 0; // Inizializzazione: se s Þ vuota allora verrÓ restituita la strin

^
5 errors
dove i simboli sbagliati sono toUppercase e toLowercase
I metodi sono toUpperCase() e toLowerCase(), attento alle maiuscole!
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 19:52   #8
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
I metodi sono toUpperCase() e toLowerCase(), attento alle maiuscole!
ah ok...ti ringrazio...ho appena iniziato con Java...paura...
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 19:56   #9
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
doh ora compila ma quando vado ad eseguire la mia applicazione mi dà un errore a run time...nel promp di MsDos mi dice:

C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>java GestoreStringhe
Exception in thread "main" java.lang.NoSuchMethodError: main

C:\Programmi\Crimson Editor\template\esercizi\GestoreStringhe>

Come mai? che significa?

Grazie
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 20:27   #10
magix2003
Senior Member
 
L'Avatar di magix2003
 
Iscritto dal: Aug 2005
Città: Wien
Messaggi: 435
Significa che manca il metodo con signature public static void main(String[] args). Questo metodo è lo starting point per ogni applicazione stand alone (come il main in C/C++). Devi crearne uno per poter fare funzionare un programma...
__________________
"Sono 126 miglia per Chicago. Abbiamo il serbatoio pieno, mezzo pacchetto di sigarette, è buio, e portiamo tutt'e due gli occhiali da sole"

magix2003 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 20:30   #11
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
Quote:
Originariamente inviato da magix2003 Guarda i messaggi
Significa che manca il metodo con signature public static void main(String[] args). Questo metodo è lo starting point per ogni applicazione stand alone (come il main in C/C++). Devi crearne uno per poter fare funzionare un programma...
no vabbè...c'è che sono rincojonito !!! ho lanciato l'altra classe...infatti funziona
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 22:21   #12
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Eheh capita
Io comunque ti condiglio di usare un ide come netBeans o eclipse per scrivere in java. Più semplice veloce e ti risparmi un sacco di tempo a trovare gli errori sintattici

Ciauz
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 22:42   #13
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
Quote:
Originariamente inviato da Don[ITA] Guarda i messaggi
Eheh capita
Io comunque ti condiglio di usare un ide come netBeans o eclipse per scrivere in java. Più semplice veloce e ti risparmi un sacco di tempo a trovare gli errori sintattici

Ciauz
la proff ce lo ha esplicitamente vietato per questo primo esame...poi per quello del semestre prossimo dovrebbe essere lecito
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Unitree H1: il robot umanoide vicino al ...
GPU esterne: PCI-SIG porta le prestazion...
Per Lenovo i giocatori sono ricchi: Legi...
Polaroid lancia la nuova stampante Hi-Pr...
Da Kyndryl un gemello digitale per il di...
La Cina si prepara a una nuova missione ...
Climatizzatore Inverter A++ con Wi-Fi a ...
NZXT Flex, lo 'scandalo' del PC gaming a...
Robot lavavetri in offerta su Amazon: EC...
Attenti a questo update fake di Windows ...
NIO chiede la standardizzazione di batte...
Da 80 mesi-uomo a poche ore: l'AI cambia...
In 2 settimane senza social il cervello ...
Amazon top 7 di oggi: 2 portatili intere...
SteamGPT trapela dal client Steam: ecco ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v