1. פונקציות מחרוזות מובנות
String s = "Example String";
int position = s.indexOf("String"); // מחזירה אינדקס התחלת תת-מחרוזת או -1
boolean has = s.contains("Exam"); // בודקת קיום תת-מחרוזת
int len = s.length(); // מחזירה את אורך המחרוזת
2. תחביר מערכים
String[] cars = new String[5]; // איתחול לגודל 5, המערך מאופס לערכי null
String[] cars2 = { "BMW", "Ford", "Kia" }; // איתחול ישיר בזמן הכרזה
3. הגדרה וקריאה של פונקציה המקבלת מערך ושלם ומחזירה שלם
int result = multiplyAtIndex(new int[] { 1, 2, 3 }, 2); // קריאה לפונקציה
int[] nums = { 1, 2, 3 };
int res2 = multiplyAtIndex(nums, 2); // אפשר גם לשמור במשתנה ואז לשלוח
public static int multiplyAtIndex(int[] arr, int index)
{
return arr[index] * index;
}
4. מציאת איבר אחרון המקיים תנאי, ב3 דרכים
בדוגמא זו: מציאת מספר זוגי אחרון במערך
א. תחביר רגיל עם לולאת for הפוכה ו-break
public static int lastEven(int[] arr)
{
int lastEven = -1;
for (int i = arr.length - 1; i >= 0; i--)
{
if (arr[i] % 2 == 0)
{
lastEven = arr[i];
break; // לא נרצה להמשיך לחפש
}
}
return lastEven;
}
ב. לולאת for קדימה עם חישוב אינדקס מהסוף
public static int lastEvenFromEnd(int[] arr)
{
int lastEven = -1;
for (int i = 1; i <= arr.length; i++)
{
int value = arr[arr.length - i]; // חישוב האינדקס מהסוף
if (value % 2 == 0)
{
lastEven = value;
break;
}
}
return lastEven;
}
ג. תחביר foreach קדימה בלי break
public static int lastEvenForeach(int[] arr)
{
int lastEven = -1;
for (int num : arr)
{
if (num % 2 == 0)
lastEven = num;
}
return lastEven;
}
5. מערך מונים
הבעיה: נתון מערך של מספרים בתחום 0–100. כתבו פונקציה המחזירה מערך מונים המצביע על כמות ההופעות של כל מספר.
public static int[] countOccurrences(int[] arr)
{
int[] counts = new int[101];
for (int x : arr)
{
if (x >= 0 && x <= 100)
counts[x]++;
}
return counts;
}