Permalänk
Medlem

Java programmering hjälp !

Jag är en riktig nybörjare men någonstans ska man ju börja, i vilket fall behöver jag hjälp med denna uppgift.

Skriv ett program som från en dialogruta läser in ett namn som skrivs enligt modellen efternamn, förnamn. Programmet ska skall sedan visa en dialogruta som innehåller hälsningen hej XXX, där XXX är förnamnet och som skall visas med stora bokstäver i hälsningen.

Detta är det ända jag kan klura ut.

String a = JOptionPane.showInputDialog("Efternamn,Förnamn");

jag har testat med metoderna substring,lastIndexOf och indexOf men jag får inte till det !!!

JOptionPane.showMessageDialog(null, ?? + a.toUpperCase() );

Tacksam för svar !!!!

Permalänk
Medlem
Skrivet av Spidey:

Jag är en riktig nybörjare men någonstans ska man ju börja, i vilket fall behöver jag hjälp med denna uppgift.

Skriv ett program som från en dialogruta läser in ett namn som skrivs enligt modellen efternamn, förnamn. Programmet ska skall sedan visa en dialogruta som innehåller hälsningen hej XXX, där XXX är förnamnet och som skall visas med stora bokstäver i hälsningen.

Detta är det ända jag kan klura ut.

String a = JOptionPane.showInputDialog("Efternamn,Förnamn");

jag har testat med metoderna substring,lastIndexOf och indexOf men jag får inte till det !!!

JOptionPane.showMessageDialog(null, ?? + a.toUpperCase() );

Tacksam för svar !!!!

Jag hade använt String.split()-metoden.
Men det är fullt möjligt, även om det är bökigare, att göra med indexOf och substring.

1. Leta reda på ","-tecknets position i strängen "a"
2. Hämta ut allt från tecken nummer 0 till och med ","-tecknets position. Detta är förnamnet.
3. Hämta ut allt från ","-tecknets position till slutet av strängen. Detta är efternamnet (samt ett eventuellt mellanslag innan efternamnet börjar, detta kan du ta bort med .trim())
4. Profit!

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Men om jag ska leta efter positionen för "," då måste det väl vara ett och samma för och efternamn heltiden ?

Skrivet av Leedow:

Jag hade använt String.split()-metoden.
Men det är fullt möjligt, även om det är bökigare, att göra med indexOf och substring.

1. Leta reda på ","-tecknets position i strängen "a"
2. Hämta ut allt från tecken nummer 0 till och med ","-tecknets position. Detta är förnamnet.
3. Hämta ut allt från ","-tecknets position till slutet av strängen. Detta är efternamnet (samt ett eventuellt mellanslag innan efternamnet börjar, detta kan du ta bort med .trim())
4. Profit!

Permalänk
Medlem
Skrivet av Spidey:

Men om jag ska leta efter positionen för "," då måste det väl vara ett och samma för och efternamn heltiden ?

Varför skulle det behöva vara det?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Spidey:

Men om jag ska leta efter positionen för "," då måste det väl vara ett och samma för och efternamn heltiden ?

Det ska ju matas in med Efternamn,Förnamn så då måste ju kommatecknet vara med oavsett för- eller efternamn. Om det matas in fel visa ett felmeddelande

Visa signatur

Neon
Citera mig om du vill ha svar!

Permalänk
Medlem
Skrivet av Neonxz:

Det ska ju matas in med Efternamn,Förnamn så då måste ju kommatecknet vara med oavsett för- eller efternamn. Om det matas in fel visa ett felmeddelande

import javax.swing.*;

public class hej6 {

public static void main (String [] arg){

String a = JOptionPane.showInputDialog("Efternamn, Förnamn","Efternamn,Förnamn");
a=a.trim();

int e= a.indexOf(",",0); // leta efter "," och startar från position "0"

a.substring(e);

JOptionPane.showMessageDialog(null,"Hej\n" +e );
}
}

Jag behöver lite vägledning jag förstår fortfarande inte please !! detta är allt jag har lyckats med......

Permalänk
Medlem
Skrivet av Spidey:

import javax.swing.*;

public class hej6 {

public static void main (String [] arg){

String a = JOptionPane.showInputDialog("Efternamn, Förnamn","Efternamn,Förnamn");
a=a.trim();

int e= a.indexOf(",",0); // leta efter "," och startar från position "0"

a.substring(e);

JOptionPane.showMessageDialog(null,"Hej\n" +e );
}
}

Jag behöver lite vägledning jag förstår fortfarande inte please !! detta är allt jag har lyckats med......

Läs på om metoderna du använder. Här är dokumentation för substring().
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String...

Av koden du har skrivit så kommer variabeln "e" kommer att innehålla positionen i strängen "a" där tecknet "," förekommer. Men för att spara undan efternamnet i en variabel så ska du göra på detta vis:
String efternamn = a.substring(0,e);

Om du har läst hur indexOf() och substring() fungerar så bör du kunna få ut förnamnet också.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Läs på om metoderna du använder. Här är dokumentation för substring().
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String...

Av koden du har skrivit så kommer variabeln "e" kommer att innehålla positionen i strängen "a" där tecknet "," förekommer. Men för att spara undan efternamnet i en variabel så ska du göra på detta vis:
String efternamn = a.substring(0,e);

Om du har läst hur indexOf() och substring() fungerar så bör du kunna få ut förnamnet också.

Så jag fick till det !!! äntligen !!

import javax.swing.*;

public class hej6 {

public static void main (String [] arg){

String a = JOptionPane.showInputDialog("Efternamn, Förnamn","Efternamn,Förnamn");
a=a.trim();

int e= a.indexOf(",",0); // letar efter (positionen för ",") och startar från position "0"
//Får alltså ut deltexten mellan start "0" och framtill komma ","

String enamn = a.substring(e+1); // Börjar från komma "," alltså variabeln "e" läser framåt

JOptionPane.showMessageDialog(null,"Hej\n" + enamn.toUpperCase() );
}
}