Java/מחרוזות/תרגילים

בתרגיל זה נבנה תוכנית פשוטה שתדע לבצע פעולות פשוטות על מחרוזות.

קליטה

עריכה

כתבו תוכנית פשוטה, שתאתחל משתנה מסוג string, ותקלוט עבורו ערך מהמשתמש. רמז: כדי לקלוט מחרוזת, השתמשו ב-Scanner ובמקום nextInt, כתבו nextLine.

פתרון
import java.util.Scanner;

public class Strings {

    public static void main(String[] args) {

	String str;
	Scanner s = new Scanner(System.in);

	str = s.nextLine();
    }

}


חיבור מחרוזות

עריכה

הוסיפו לתוכנית שורות קוד כך שעכשיו התוכנית תבקש מהמשתמש להכניס את שמו, ואחרי שיכניס - תכתוב "Hello " ואז את השם שיתקבל. תזכורת: אפשר לחבר מחרוזות בעזרת חיבור פשוט (כלומר - str1+str2).

פתרון
import java.util.Scanner;

public class Strings {

    public static void main(String[] args) {

	String str;
	Scanner s = new Scanner(System.in);

	System.out.print("What is your name? ");
	str = s.nextLine();
	System.out.println("Hello, "+str);
    }

}


כעת, הוסיפו פעולה נוספת: אחרי בקשת השם הפרטי, התוכנית תבקש גם את שם המשפחה. לאחר מכן, תדפיס התוכנית את השם, שם המשפחה, ומספר התווים בשם המלא (כלומר - אורך השם). היעזרו בפונקציות הספרייה שתוארו בפרק.

פתרון
import java.util.Scanner;

public class Strings {

    public static void main(String[] args) {

	String str, str2, fullName;
	int len;
	Scanner s = new Scanner(System.in);

	System.out.print("What is your name? ");
	str = s.nextLine();
	System.out.print("What is your last name? ");
	str2 = s.nextLine();
	fullName = str+" "+str2;
	len = fullName.length()-1;
	System.out.println("Hello, "+fullName+". Your name contains "+len+
			 " letters");
    }

}

הערה: כדי שהשם ייכתב בצורה נכונה (ולא מחוברת), בחרתי להוסיף רווח בין השמות (" "). כדי לפצות על כך, החסרתי 1 בשלב בו התבצע החישוב של אורך המחרוזות. מן הסתם, ישנה יותר מדרך אחת לטפל בכך, והדרך שכאן נבחרה רק בשל פשטותה.