Zadanie ze stringiem

0

Witam

Mam takie zadanie:

Napisz program, który na wejściu przyjmuje parametry,
-imie <Twoje imie> -nazwisko <Twoje nazwisko>
I jako wynik wyświetli na konsoli dowolny napis który będzie zawierał najpierw Twoje imię, a następnie Twoje nazwisko dokładnie w takiej kolejności, pamiętaj, że:

  • po parametrze -imie zawsze będzie występowało <Twoje imie>,
  • po parametrze –nazwisko zawsze będzie występowało <Twoje nazwisko>,
    Twój program powinien również rozważyć następującą kombinację:
    -nazwisko <Twoje nazwisko> -imie <Twoje imie>
    Podpowiedź:
    Do porównania obiektów typu String wykorzystaj metodę .equals(String);
String text1 = "Text 1";
		String text2 = "Text 1";

		if(text1.equals(text2)) {
			// text1 równy text2 
		} else {
			// text1 NIE równy text2
	}

Czy ktokolwiek jest w stanie zrozumieć o co tu chodzi? Może jakiś prosty przykład? Bo zadanie wydaje się proste, ale zostało tak napisane, że nie rozumiem co mam w nim zrobić.

0

Musisz wczytać z argumentów linii komend* dwa parametry, odpowiednio -imie oraz -nazwisko, po którymi występują odpowiednie dane.

W pseudokodzie:

Niech args będzie tablicą argumentów (tablica stringów)
Niech imie = "";
Niech nazwisko = "";

Od i równego 0 do maksymalnego indeksu w tablicy args:
  Jeśli args[i] jest równe "-imie":
    Niech imie = args[++i]

  Jeśli args[i] jest równe "-nazwisko":
    Niech nazwisko = args[++i]

  ++i;

* ja tak rozumiem "wejście" w połączeniu z "parametry" oraz myślinikami.

0

Program (funkcja main) zawsze przy uruchamianiu otrzyma co najmniej cztery argumenty. Pierwszy argument będzie miał jedną z dwóch wartości:
-"imie", wtedy trzeci argument będzie miał wartość "-nazwisko",
-"nazwisko", wtedy trzeci argument będzie miał wartość "-imie".
Reszta jest prosta.

1
import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone {
	public static void main(String[] args) {
		args = new String[]{"-imie", "Marian", "śmieci", "-nazwisko", "Malina", "pstrąg", "śmieci" };
		Map map = new HashMap();
		map.put("-imie",     null);
		map.put("-nazwisko", null);
		
		for(int i = 0; i < args.length-1; ++i){
			if(map.containsKey(args[i]))
				map.put(args[i], args[i+1]);
		}
		
		String imie     = (String) map.get("-imie");
		String nazwisko = (String) map.get("-nazwisko");
		
		System.out.println("Witaj "+imie+" z rodu "+nazwisko+"!");
	}
}

http://ideone.com/FTc8KN

(Własne args na potrzeby ideone)

1 użytkowników online, w tym zalogowanych: 0, gości: 1