Avatar billede Slettet bruger
21. september 2005 - 22:58 Der er 15 kommentarer og
3 løsninger

3.4.6 Opgaver - jeg er gået istå

Hej
Jeg er ved at lære Java ved hjælp af Objek´torienteret programmering i JAVA - http://javabog.dk

Men jeg er gået i stå.. Jeg kan kun løse den første opgave, og det er jeg ik helt tilfreds med.

Jeg synes eller jeg har forstået String objektet rimelig godt og metoderne,Replace, substring, length og indexOf, og det er dem man skal bruge til at løse opgaverne.. men
jeg kan ikke komme på en løsning.

Er der nogen som har lavet nogen af opgaverne som kan give mit et hint, til hvordan jeg kunne løse nogen af dem..
Avatar billede kalp Novice
21. september 2005 - 23:07 #1
hvad går opgaven ud på? kan du copy paste den herind?
Avatar billede Slettet bruger
21. september 2005 - 23:15 #2
Nr 2: Skriv et program, der fjerner det første ord i en sætning

Altså jeg kan jo sagtens skrive
string s;
s = "hej med dig";
System.out.println(s.replace("hej" , " ");

men jeg vil gerne ha et program som fjerner det første ord uden man har angivet hvilket ord, hvis du forstår..
Avatar billede driis Nybegynder
21. september 2005 - 23:28 #3
string s;
s = "hej med dig";
int idx = s.indexOf(" ");
s = s.substring(idx + 1);
Avatar billede kalp Novice
21. september 2005 - 23:34 #4
public class Class1
{
  public static void main(String[] args)
  {
 
String tekst = "hej med dig";
int count = 0;
boolean status = false;

while(count < tekst.length())
{
if(String.valueOf(tekst.charAt(count)).equalsIgnoreCase(" "))
status = true;

if(status != false)
System.out.print(tekst.charAt(count)); 

count++;
}



  }
}
Avatar billede kalp Novice
21. september 2005 - 23:34 #5
Blot for at komme med noget andet end det dres foreslog:P
Avatar billede Slettet bruger
21. september 2005 - 23:36 #6
Det virker fint.. vil du ik lige forklare hva det er der sker i sidste linje..
for jeg har forstået det sådan at man kun, kunne indsætte tal..Startindex og slutindex som tal..
Avatar billede mr_chaos Praktikant
21. september 2005 - 23:39 #7
Det er vigtigt at læse at man skal fjerne det første ord ikke erstatte det, så driis's løsning er næsten rigtig.

Man bør altid efter en indexOf sikre sig at den returnere mere end -1, hvis man fx. skrev "hej" så skal den bare returnere en tom streng.

Så en lidt udvidet version vil være som nedenstående

String s = "et eller andet";
int index = s.indexOf(" ");
if(index>-1) {
  return s.substring(index).trim();
}
else {
return "";
}
Avatar billede driis Nybegynder
21. september 2005 - 23:45 #8
mr_chaos > Enig, jeg ville blot hurtigt demonstrere princippet for spørgeren med et minimum af kode ;-)

fknight > Det der sker i sidste linie er, at vi har fundet det første index i strengen, hvor der er et mellemrum, og ergo begynder der et ord på den næste plads. Derfor kalder vi substring med dette index (som er gemt i heltalsvariablen idx), og får returneret strengen uden det første ord.
Avatar billede Slettet bruger
21. september 2005 - 23:59 #9
Nu forstår jeg det ;)..
Avatar billede Slettet bruger
22. september 2005 - 00:06 #10
Jeg logger af.. Men jeg er på igen i morgen.. Jeg vil prøve at løse de andre opgaver udfra det i har skrevet.
Avatar billede mr_chaos Praktikant
22. september 2005 - 07:49 #11
Driis : Tror var en kombination af for mange øl og så trangen til at skrive et eller andet, der fik mig til at svare :p.
Avatar billede Slettet bruger
22. september 2005 - 11:59 #12
OKay, nu har jeg bare lige et sidste spørgsmål til et program som også handler om substring og streng metoder.

Skriv et program, der tæller antallet af mellemrum i en tekst.

Nogen der har en god, simpel måde til at løse denne opgave.. ?

så skal jeg nok afslutte dette spørgsmål ;)
Avatar billede kalp Novice
22. september 2005 - 12:08 #13
ikke ved brug af substring eller noget.. så det er ikke den letteste måde.. men den virker

 
String tekst = "hej med dig min ven";
int counter = 0;
int antal = 0;
while(counter < tekst.length())
{
  if(String.valueOf(tekst.charAt(counter)).equalsIgnoreCase(" "))
  antal++;
 
  counter++;
}

System.out.println(antal);
Avatar billede Slettet bruger
22. september 2005 - 13:22 #14
men kunne man ik os bruge indexOf og substring til opgaven.. for jeg er ik nået til equalsIgnoreCase og charAt endnu....
Avatar billede mr_chaos Praktikant
22. september 2005 - 17:46 #15
Jo, da.

String s = "Hejsa du er da en værre en";
int count = 0;
int startindex = 0;
int index = 0;
while((index = s.indexOf("", startindex))!=-1) {
  count++;
  startindex = index+1;
}
return count;
Avatar billede Slettet bruger
22. september 2005 - 18:34 #16
Jbuilder melder fejl i den sidste linje

return count;
Avatar billede Slettet bruger
22. september 2005 - 18:43 #17
Jeg har undværet den ;)..
Tak for svarene, Hermed lukker jeg debatten..
Avatar billede Slettet bruger
23. september 2005 - 13:16 #18
Altså undværet retunr count; ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester