Wątek przeniesiony 2015-05-24 23:11 z Java przez bogdans.

Dużo pytań w sprawie pracy domowej z Javy

0

Witam, mam problem z kilkoma pytaniami z pracy domowej :( nie mówię o rozwiązaniu ale podpowiedzcie jak to zrobić może jakiś przykład, zaczynam dopiero przygodę z Javą więc proszę o wyrozumiałość. Oto pytania:
imie ma skladac sie z jednego wyrazu i zawierac same znaki (zrobiłem to z jednym wyrazem to w 50%, a dokładniej chciałbym zrobić aby pierwsze słowo które wpisałem przez scanner zostało wycięte i wstawione ale nie wiem jak to zrobić )
<ort>

	if (tab.length ==2)
	{
		System.out.println("Podano za dużą ilość wyrazów");
		imie = "Jan"; // i tu przypisałem stała a chodzi mi o to aby pierwszy wyraz ze scannera został tutaj przypisany
		return;
	}
	
</ort> maila musi zawierac jedna @ po ktorej ma wystepowac frima.pl przed malpa mus znajdowac sie pierwsza litera imienia kropka i nazwisko np. [email protected] zaproponuj metode ktora modyfikuje adres email w taki sposob ze zmienia jego czesc przed malpa na dowolna ale w takim samy styli czyli litera kropka wyraz
0

Nie dodało kodu więc sprostowanie :

 
		if (tab.length ==2)
		{
			System.out.println("Podano za dużą ilość wyrazów");
			imie = "Jan"; //i tu chce właśnie aby pierwsze słowo ze scannera zostało wycięte i wstawione, wiem że trzeba użyć split() ale nie mam pojęcie jak to zrobić :( 
			return;
		}
		
 
0

Co chcesz wycinać?

scanner.next();

zwróci tylko pierwsze słowo.

0

Np. jeśli wpisze Jan Kowalski co z założenie programu będzie błędem bo imię musi się składać tylko z jednego wyrazu. A chcę zrobić tak aby zostało wycięte słowo Jan i przypisane do set'a.

Nie skumałem, ok zrobiłem to działa :) teraz jeszcze reszta a co do tego zagadnienia jak spr czy wyraz to wyraz ?

0

jak spr czy wyraz to wyraz ?

Co konkretnie masz na myśli? Chodzi o to, że "wyraz" zawiera tylko litery?

boolean onlyLetters(String s)
{
    boolean result = true;
    for(int i=0;i<s.length();i++)
    {
        result = result && Character.isLetter(s.charAt(i));
    }
    return result;
}

Ta funkcja działa źle dla większości wyrazów zawierających polskie litery.

0

Rzeczywiście trochę ma problem z Pl znakami, i mam rozumieć ze taka postać jest już finalna? i tak wielkie dzięki :)! A znasz sposoby na zrobienie zagadnienia z @? Myślałem zrobić to tak: użyć split i rozbić to na dwie części to dobry pomysł czy jest coś szybszego i lepszego?

0

Scanner twórz tak (jeśli masz Windows):

Scanner scanner = new Scanner(System.in,"852");

Do kontroli możesz użyć wyrażeń regularnych (tylko czy prowadzący uwierzy w samodzielne wykonanie).

Pattern.matches("[\\p{javaLowerCase}|\\p{javaUpperCase}|\\d]*",scanner.next());

Po tych zmianach, funkcja onlyLetters też działa poprawnie.

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