Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-11-2008, 16: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, 16: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, 17: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, 17: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, 18: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, 18: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, 20: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, 20: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, 20: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, 21: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, 21: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, 23: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, 23: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


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Il telescopio spaziale James Webb ha cat...
Il razzo spaziale europeo Ariane 6 lance...
Il lander lunare Blue Origin Blue Moon M...
Gli LLM riescono a risolvere problemi ma...
Smettila con quei cioccolatini. Per San ...
Il secondo lancio del razzo spaziale eur...
MaiaSpace ed Eutelsat stringono un accor...
Motorola edge 60 neo sorprende: compatto...
Zeekr 007 e 007GT si aggiornano: piattaf...
ASUS ROG Swift OLED PG27AQWP-W: 720 Hz e...
È super il prezzo del robot rasae...
MediaTek aggiorna la gamma di Dimensity:...
Foto intime sottratte dai telefoni in ri...
In Cina approvate nuove regole per il ri...
L'accordo multi-miliardario tra Google e...
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: 07:26.


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