Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Substring finden » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
eulerscheZahl

1) ja
2) z.B. "lotto".toCharArray();
3)
code:
1:
2:
3:
public static void main(String[] args) {
	printPalindromicStrings("lotto");
}
neuling96

Zitat:
Original von eulerscheZahl
Ja.
Du kannst den String aber auch in ein char[] umwandeln.


1)String ist ein Objekttyp, darum die Schwierigkeit, korrekt? ( für primitivetypen wie int, double) wäre alles ok?
2) Wie wandelt man bzw. wann darf man umwandeln?
3)Wie würde ich hier die main schreiben, umzurpüfen, dass der code das tut, was er soll.
eulerscheZahl

Ja.
Du kannst den String aber auch in ein char[] umwandeln.
neuling96

Zitat:
Original von eulerscheZahl

Im Sinne der Aufgabe bräuchtest du kein String[], sondern ein char[]


d.h wenn ich einen char [] hätte müsste ich auf meine art lösen und bei string auf deine art?
eulerscheZahl

Die Frage ist eben, was genau du vorhast.
Wenn du die Aufgabe lösen willst, bist du ganz falsch. Dafür habe ich ja bereits eine Lösung geliefert.

Was du machst, ist zu prüfen, ob ein String-Array ein Palindrom ist, also z.B. {"a", "b", "a"}

if (param[i]!=param[param.length-1-i]) geht so eben nicht. Wenn du zweimal einen String mit dem selben Inhalt erstellst, sind es immer noch zwei Strings. == prüft die Adresse im Speicher und liefert dann false.

Im Sinne der Aufgabe bräuchtest du kein String[], sondern ein char[]
neuling96

ich kenne den befehl myString.equals(otherString) noch nicht, deshalb der umweg
neuling96

bis auf deine Anmerkungen stimmt der code?
also macht was er soll?
eulerscheZahl

Um ein String[] zu erzeugen, musst du Strings übergeben.
Also nicht a= {1,2,3,4}, sondern a= new String[] {"1","2","3","4"}

Wenn du prüfen willst, ob 2 Strigns gleich sind, geht das mit myString.equals(otherString);

for(int y=0; y<i-1;y++)
entweder y < i oder y <= i-1, sonst nimmst du einen Eintrag zu wenig mit.

bei der Ausgabe der Palindrome ist mir nicht klar, warum du bei 2 anfängst und nicht bei 0.

Zitat:
setze soll einen subarray lieferen zum

dann sollte man die Funktion vielleicht auch liefereSubarray nennen. Noch schlimmer sind nur die Funktionen, die ein liefere/get im Namen haben und dann anfangen, Werte zu überschreiben - damit rechnet doch keiner.
neuling96

isPalindrome soll überprüfen

setze soll einen subarray lieferen zum
bsp
a= {1,2,3,4}
für den fall i= 2

substring = {1,2}

dann mit printPalindromicStrings der test für den sub array.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:

public class E {
public static boolean isPalindrome(String []param){
boolean a=true;
for (int i=0; i<param.length; i++){
if (param[i]!=param[param.length-1-i])
a=false;
break;
}
return a;
}
public static String[] setze(String []param, int i){
String [] substring= new String [i];
for(int y=0; y<i-1;y++){
substring[y]=param[y];
}
return substring;
} 

public static void printPalindromicStrings(String []param){

for (int i=2; i<param.length; i++){

if (isPalindrome(setze(param, i))){
System.out.println(setze(param, i));
}
}
}
}


neuling96

String [] substring= new String [i];
for(int y=0; y<=i;y++){
substring[y]=param[y];

damit wollte ich zum beispiel für den fall i=1 und String []param={a,b,c }
ein string sub array konstruieren, sodass

substring[0]=param[0];
substring[1]=param[2];

d.h

substring[0]=a;
substring[1]=b;

substring={a,b} und den anschließend auf Palindrom testen
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.