Leerzeichen aus

  • Themenstarter Themenstarter OPH
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
O

OPH

Gast
abend...

die eingegebenen zeichen(wort, wörter,etc) sollen überprüft werden, ob diese ein palindrom sind( von vorne/hinten gleiches wort, zB ANNA)...
mein problem ist, dass wenn ich einen satz eingebe, welcher eigentlich ein palindrom ist, nicht als solches gewertet wird... habe versucht die leerzeichen, an welhen es ja scheitert, durch nichts, also "" zu ersetzen... hat leider nicht ganz funktioniert... hat jemand ne lösung?

mfg


Code:
	public static char[] readWord()
	{		
		String bla= "";
		bla = new Scanner(System.in).next().toLowerCase();
		bla.replaceAll(" ", "");
		return bla.toCharArray();
		
	}
 
Schreib:

Code:
bla = bla.replaceAll(" ", "");

Da Strings immutable sind, geben die Methoden immer einen neuen String zurück.

Und warum gibst du ein char[] zurück und nicht ein String?

Edit: Bei toLowercase must du das natürlich auch machen.
 
also wegen dem toLowerCase... das funktioniert ohne Probleme...

wegen dem char[]:

Aufgabenstellung:
...Implementieren Sie dazu die Methode boolean isPalindrom(char[] signs).  Zum  Einlesen  eines  Wortes  verwenden  Sie  die gegebene Methode char[] readWord(). 

muss ich noch mehr sagen? 🙂
funktioniert aber leider immer noch net...
 
also wegen dem toLowerCase... das funktioniert ohne Probleme...

wegen dem char[]:

Aufgabenstellung:
...Implementieren Sie dazu die Methode boolean isPalindrom(char[] signs).  Zum  Einlesen  eines  Wortes  verwenden  Sie  die gegebene Methode char[] readWord(). 

muss ich noch mehr sagen? 🙂
funktioniert aber leider immer noch net...
 
Ah ja bei toLowerCase machst du das ja schon.

Aber bla.replaceAll(" ", ""); hast du schon durch bla = bla.replaceAll(" ", ""); ersetzt?

OPH hat gesagt.:
...Implementieren Sie dazu die Methode boolean isPalindrom(char[] signs). Zum Einlesen eines Wortes verwenden Sie die gegebene Methode char[] readWord().

Tja =)
 
Also die ReadWord Methode funktioniert bei mir, dann liegts an was anderem. Poste mal noch mehr code.
 
moin, hier der ganze code:

Code:
package ab3;

import java.util.Scanner;
import util.simpleIO.Out;

public class Aufgabe5 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	
		char[] palArray = new char[100];
		Out.print("Geben Sie ein Wort ein!\n");
		palArray = readWord();
		int laenge = palArray.length;
		Out.print(" Das zu überprüfende Wort ist: ");
		for(int i=0;i<laenge;i++){
			Out.print(palArray[i]);
		}
		if(isPalindrom(palArray) == true){
			Out.print("\n Palindrom erkannt!");
		}
		else{
			Out.print("\n Kein Palindrom!");
		}
	}
	
	private static boolean isPalindrom(char[] signs){
		
		int checkSum=0;
		int laenge = signs.length;
		
		for(int i=0;i<2;i++){
			if(signs[i]==signs[laenge-i-1]){
			}
			else{
				checkSum++;
			}
		}
		
		if(checkSum==0){
			return true;
		}
		else{
			return false;
		}
	}
	
	public static char[] readWord()
	{		
		String bla= "";
		bla = new Scanner(System.in).next().toLowerCase();
		bla = bla.replaceAll(" ", "");
		return bla.toCharArray();
	}
}

mfg
 
Warum läuft in isPalindrom der Index gerade von 0 bis 1? So wird doch nur das erste mit dem letzten und das zweite mit dem vorletzen Zeichen verglichen.
 
oh, klar... korrigiert


Code:
int laenge = signs.length;
for(int i=0;i<laenge;i++){
			if(signs[i]==signs[laenge-i-1]){
			}
			else{
				checkSum++;
			}
		}
 
habe mir gerade mal die klasse scanner angeschaut


A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace. The resulting tokens may then be converted into values of different types using the various next methods.

also kannd er gar keinen satz einlesen, da jedes mal nachdem ich ein leerzeichen eingegeben habe, er das "scannen" beendet... jemand nen vorschlag wie ich das unterbinden bzw umgehen kann?
 
ok, bin der lösung wieder näher...
zauberwort heißt delimiter... nach dem delimiter(standardmäßig space, etc) ist die eingabe für den scanner beendet...
jetz muss ich quasi nur noch den "." durch "enter"-taste ersetzen... wie is denn das lürzel dafür?


Code:
		String bla= "";
		bla = new Scanner(System.in).useDelimiter("\\s.\\s*").next().toLowerCase();
		Out.print("bla: "+bla);
		bla = bla.replaceAll(" ", "");
		return bla.toCharArray();
[/quote]
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben