Vedr. Javabog.dk

Tags:    java

<< < 12 > >>
Hej er ved at læse javabog.dk

Er kommet til opgave 3.4.6.6

Har lavet lidt men har på fornemmelsen at jeg laver det forkert. Med den måde jeg laver det er jeg jo nødt til at lave uendelig kode inde i if blokken. Hvordan undgår jeg det?

Skriv et program, der undersøger, om en tekst er et palindrom, dvs. med samme stavning forfra og bagfra (som f.eks. "regninger", "russerdressur", "vær dog god ræv").
(vink: Træk de enkelte tegn ud af strengene med substring(n,n+1) og husk, at strengobjekter skal sammenlignes med .equals()-metoden: s1.equals(s2)).

Fold kodeboks ind/udKode 




12 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato


Hej Claus,

Jeg syntes at du skal slå en for løkke op ... Det du har lavet der er helt væk fra hvordan en sådan bør laves.

Med venlig hilsen
Ieet

Ps. Opgaverne er der så du kan se hvad du mangler at lave, ikke for at andre skal poste løsningen.



Hej er ved at læse javabog.dk

Er kommet til opgave 3.4.6.6

Har lavet lidt men har på fornemmelsen at jeg laver det forkert. Med den måde jeg laver det er jeg jo nødt til at lave uendelig kode inde i if blokken. Hvordan undgår jeg det?

Skriv et program, der undersøger, om en tekst er et palindrom, dvs. med samme stavning forfra og bagfra (som f.eks. "regninger", "russerdressur", "vær dog god ræv").
(vink: Træk de enkelte tegn ud af strengene med substring(n,n+1) og husk, at strengobjekter skal sammenlignes med .equals()-metoden: s1.equals(s2)).

Fold kodeboks ind/udKode 


Jeg er også igang med javabog.dk og har lavet denne
den virker men der er sikkert en nemmere måde at lave det på men er også nybegynder og det virker :P
så hvis du ikke il snyde skal du ikke kikke på koden ellers kik på den og få nogle ideer og skriv den igen selv :)

Fold kodeboks ind/udKode 


Jeg har dog ikke kommenteret koden men jeg tror godt du kan forstå den



Indlæg senest redigeret d. 30.03.2008 09:30 af Bruger #3325
Jeg har lavet et palindrom-script ved at benytte rekursion. Ret simpelt og kort script. Kan jo være du kan bruge det :)

Læs mere på min blog: http://t3ch.dk/index.php/2008/02/13/rekursion-palindrom/


Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 09.04.2008 10:07 af Bruger #13581


Hej Claus,

Istedet for at lave en lang række if'er benyttes en for-løkke ;)

Med venlig hilsen
Ieet





Man kunne også søge på palindrom på denne side da den opgave der sjovt nok er blevet løst en gang her :)



Ieet > OK. Men hvordan skal det se ud så?

Har forsøgt på det her men den virker ikke og kan ikke helt forstå hva jeg skal skrive i for løkken.?

for (initialisering; betingelse; opdatering) kommando;
Fold kodeboks ind/udKode 






Tænk lidt over det.
1) Hvor mange bogstavepar er der i et palindrom ? Antallet af bogstavepar giver dig antallet af gennemgange af løkken.
2) Når du er nået til gennemgang nr. 'i', hvilke to bogstaver skal du så sammenligne ?



Jeg har lavet et palindrom-script ved at benytte rekursion. Ret simpelt og kort script. Kan jo være du kan bruge det :)

Læs mere på min blog: http://t3ch.dk/index.php/2008/02/13/rekursion-palindrom/


Fold kodeboks ind/udKode 


Det fungerer, men det opretter nye objekter, hvilket slet ikke er nødvendigt.



Ved godt tråden er gammel, men denne skulle gerne virke ved alle former for palindromer hvad enten det er tal, store og små bogstaver, mellemrum og kommaer:

public class opgave_3_4_6_7
{
public static void main(String[] arg)
{
java.util.Scanner tastatur = new java.util.Scanner(System.in);

System.out.println("Indtast en sætning");
String tekst1 = tastatur.nextLine(); //gemmer det indtastede i tekst1
String tekst2 = tekst1.toLowerCase(); //laver alle bogstaver om til småt og gemmer det i tekst2
String tekst3 = tekst2.replaceAll("[^a-åA-Å0-9]", ""); // se nederst

String omvendt = new StringBuilder(tekst3).reverse().toString(); // gemmer den omvendte rækkefølge af "tekst3" i strengen "omvendt"

if (tekst3.equals(omvendt)) System.out.println("Teksten er et palindrom"); //sammenligner "tekst3" og "omvendt"
else System.out.println("Teksten er ikke et palindrom");

tastatur.close();

}
}


// [^a-åA-Å0-9] betyder alle tegn der ikke er fra a-å eller fra A-Å eller 0-9



Ved godt tråden er gammel, men denne skulle gerne virke ved alle former for palindromer hvad enten det er tal, store og små bogstaver, mellemrum og kommaer:

public class opgave_3_4_6_7
{
public static void main(String[] arg)
{
java.util.Scanner tastatur = new java.util.Scanner(System.in);

System.out.println("Indtast en sætning");
String tekst1 = tastatur.nextLine(); //gemmer det indtastede i tekst1
String tekst2 = tekst1.toLowerCase(); //laver alle bogstaver om til småt og gemmer det i tekst2
String tekst3 = tekst2.replaceAll("[^a-åA-Å0-9]", ""); // se nederst

String omvendt = new StringBuilder(tekst3).reverse().toString(); // gemmer den omvendte rækkefølge af "tekst3" i strengen "omvendt"

if (tekst3.equals(omvendt)) System.out.println("Teksten er et palindrom"); //sammenligner "tekst3" og "omvendt"
else System.out.println("Teksten er ikke et palindrom");

tastatur.close();

}
}


// [^a-åA-Å0-9] betyder alle tegn der ikke er fra a-å eller fra A-Å eller 0-9
Måske det kan gøres lidt mere simpelt en at lave de mange lokale variabler.

Her er min metode til at tjekke om en sætning/ord er et palindrom
Fold kodeboks ind/udJava kode 

Metoden returnerer true hvis sætningen/ordet i strengen er et palindrom.



<< < 12 > >>
t