2017-01-27, 13:34
  #1
Medlem
Worgxors avatar
Hej. Ngonstans i min kod s har det blivit ngot problem, jag vet verkligen inte vad det kan vara, har lst p lite om return och frskt p olika stt men frstr nd inte hur jag ska f det hr att fungera.
Det hr stycket kod ska; 1. Lsa in fr- och efternamn frn en .txt fil. 2. Bryta ner rad fr rad s det r namn och efternamn, sen ta ut enstaka bitar i bda, detta grs i andra styckets metod. Sen ter i main ska den skriva ut varje linjes resultat efter "konverteringen" i metoden. Jag r rtt ny nnu med Java men uppskattar grna om ni kan frklara return d jag inte verkar frst det alls.
Inget tyder p fel vid kompilering men nr jag ska starta hnder inte ett skit heller.

Kod:
import java.util.*;
import java.io.*;
public class 
CreateMailList
{
public static 
void main(String[]str)
{
try
{
Scanner filscan = new Scanner (new File("klasslista.txt"));

while(
filscan.hasNext())
{
String line filscan.nextLine();
String email create_email(line);
System.out.println(line+" email: "+email);
create_email(line);
}
}
catch(
Exception e){}

}
public static 
String create_email(String name)
{
String email;
String fornamn name.substring(0name.indexOf(" "));
String efternamn name.substring(name.indexOf(" ")+1);
String fkort fornamn.substring(03);
String ekort efternamn.substring(04);
email fkort+ekort+"@student.hh.se";
{
return 
email
}
}

Citera
2017-01-27, 13:54
  #2
Medlem
Jag tror att public static String create_email(String name) inte ska vara en statisk metod. Tag bort static och prova.
Citera
2017-01-27, 13:58
  #3
Medlem
Svrt att sga utan att veta hur din fil "klasslista.txt" ser ut. Testade sjlv med denna:

Kod:
hejaaaa hahaf
baaaaaa sjsf
tjoaaaa asdf

Och d blev det s hr:

Kod:
hejaaaa hahaf email: hejhaha@student.hh.se
baaaaaa sjsf email: baasjsf@student.hh.se
tjoaaaa asdf email: tjoasdf@student.hh.se
Citera
2017-01-27, 14:09
  #4
Medlem
Citat:
Ursprungligen postat av Worgxor
Hej. Ngonstans i min kod s har det blivit ngot problem, jag vet verkligen inte vad det kan vara, har lst p lite om return och frskt p olika stt men frstr nd inte hur jag ska f det hr att fungera.
Inget tyder p fel vid kompilering men nr jag ska starta hnder inte ett skit heller.
Jag skulle gissa p att du har fel skvg till "klasslista.txt" och drfr kastar File en Exception, men du mrker det aldrig fr att din catch-sats r tom.

Se vad du har fr exception, r det som jag tror FileNotFound s ange rtt skvg frslagsvis filens fullstndiga.

Citat:
Ursprungligen postat av Motherofgod
Jag tror att public static String create_email(String name) inte ska vara en statisk metod. Tag bort static och prova.
create_email mste vara statisk, eftersom main r det.

EDIT:
Du har frsttt precis rtt hur metodreturer fungerar.
Du behver dremot inte {} runt ditt return-statement. I mina gon tillfr det inget utan frvirrar
__________________
Senast redigerad av Blippster 2017-01-27 kl. 14:11. Anledning: Tillgg
Citera
2017-01-27, 14:22
  #5
Moderator
tobess avatar
Vid frsta anblick ser koden helt OK ut. Hller med Blippster, printa exceptionen

Byt ut

Kod:
catch(Exception e){} 

mot

Kod:
catch (Exception e) {
     
System.out.println(e);


och kolla om det printar ut ngot felmeddelande.
Citera
2017-01-27, 14:26
  #6
Moderator
Protons avatar
Din kod skulle m bra av lite indenteringar, samt en vettigare undantagshantering som sagt.

Dessutom undrar jag ver de extra klamrarna i din create_email-metod.

Kod:
public static String create_email(String name

String email
String fornamn name.substring(0name.indexOf(" ")); 
String efternamn name.substring(name.indexOf(" ")+1); 
String fkort fornamn.substring(03); 
String ekort efternamn.substring(04); 
email fkort+ekort+"@student.hh.se"

return 
email;  


Bortsett frn att frvirra lsaren av koden, vad fyller
Kod:

return 
email;  

-klamrarna fr funktion dr?
Citera
2017-01-27, 14:30
  #7
Medlem
Citat:
Ursprungligen postat av tobes
Hller med Blippster, printa exceptionen

Eller s kan man gra om den till en RuntimeException om man inte vet ngot bttre stt att hantera det p. RuntimeException behver man inte fnga vilket man mste gra med t ex IOException. Kr man d java-programmet i en terminal s fr man se backtrace av hela exceptionkedjan.

Kod:
throw new RuntimeException(e);
Citera
2017-01-30, 16:35
  #8
Medlem
Worgxors avatar
Tack fr all hjlpen, jag kollade igenom koden en extra gng och gjorde en ny lista.
Problemet var att det var tabs och inte space som mellanrum mellan fr- och efternamn i den frsta listan. Annars s fungerade den felfritt. Men tack vare era tips s har jag kunnat frbttra koden och gra den enklare att frst. Detta med catch exception tyckte jag var grymt anvndbart. Nr man inte vet vad det r fr fel fr att allt verkar okej vid kompillering och start av koden fast koden nd inte gr vad den ska.
Kod:
catch(Exception e){
System.out.println(e); 

Och detta med return innanfr msvingarna, vet inte vad jag tnkte p dr egentligen, hjrnslpp(?).
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in