מחרוזות – הטיפוס String

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

Strings in Java 1. strings in java are handled by two classes String &
Chapter 7 Strings F To process strings using the String class, the StringBuffer class, and the StringTokenizer class. F To use the String class to process.
1 Working with String Duo Wei CS110A_ Empty Strings An empty string has no characters; its length is 0. Not to be confused with an uninitialized.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 8 Strings.
Java Programming Strings Chapter 7.
Strings An extension of types A class that encompasses a character array and provides many useful behaviors Chapter 9 Strings are IMMUTABLE.
Chapter 10 Review. Write a method that returns true is s1 and s2 end with the same character; otherwise return false. Sample Answer: public boolean lastChar(String.
Java Strings in 10 minutes
האוניברסיטה העברית בירושלים
Pointers הרצאה קריטית. השאלות הפתוחות מה זה ה- & שמופיע ב scanf מדוע כשמעבירים מחרוזת ל scanf אין צורך ב & האם ניתן להכריז על מערך שגדלו אינו ידוע בתחילת.
1 מבוא למדעי המחשב הקצאה דינאמית. 2 הקצאת זיכרון דינאמית  כאשר אנו משתמשים במערכים, אנו מקצים אוטומטית את הזיכרון המקסימלי שנצטרך.  בפועל, אנו משתמשים.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
Introduction to Computer Programming Stringing Along – Using Character and String Data.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
הוראת המדעים האוניברסיטה העברית1 רקורסיה. הוראת המדעים האוניברסיטה העברית2 חלק א: רקורסיה עם מספרים.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Fundamental Programming Structures in Java: Strings.
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים 1 הפניות.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
© המרכז להוראת המדעים האוניברסיטה העברית בירושלים
אתחול עצמים. אתחולים ובנאים יצירת מופע חדש של עצם כוללת: הקצאת זכרון, אתחול, הפעלת בנאים והשמה לשדות במסגרת ריצת הבנאי נקראים גם הבנאי/ם של מחלקת הבסיס.
המשך תכנות מונחה עצמים 1. היום בתרגול  הורשה  שיטות מיוחדות  פולימורפיזם 2.
Lecture 14 March 23, Exam Results Class Average was 69.4 –Median was 72.5 (which means there were some very low grades) Questions 31, 32, and 33.
From C++ to Java A whirlwind tour of Java for C++ programmers.
Chapter 7 Strings  Use the String class to process fixed strings.  Use the StringBuffer class to process flexible strings.  Use the StringTokenizer.
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
1 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים עוברים לג ' אווה.
Geoff Holmes Date Math Weighted Distr Strings String methods Tokenizers System Examples Utility Classes (Chapter 17) import java.util.*;
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
String Definition A String is a set of characters that behaves as a single unit. The characters in a String include upper-case and lower-case letters,
1 Java Strings Dr. Randy M. Kaplan. 2 Strings – 1 Characters are a fundamental data type in Java It is common to assemble characters into units called.
CSC Programming I Lecture 9 September 11, 2002.
1 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים פולימורפיזם מתקדם ממשקים בג ' אווה 1.
String Definition A string is a set of characters that behaves as a single unit. The characters in a string include upper-case and lower- case letters,
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
Java String 1. String String is basically an object that represents sequence of char values. An array of characters works same as java string. For example:
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
1 נתבונן בפונקציה הבאה public static int min(int[] a,int n) { int min = a[0]; for (int i = 1; (i < n ) && (i < a.length) ; i++) if (min > a[i]) min = a[i];
. Sequence Alignment Tutorial #3 © Ydo Wexler & Dan Geiger.
עיצוב תוכנה מבוסס עצמים סדנאות תשס"ח-תשס"ט
האוניברסיטה העברית בירושלים
פרופ' מוטי בן-ארי המחלקה להוראת המדעים מכון ויצמן למדע
Object Oriented Programming
מבוא למדעי המחשב לתעשייה וניהול
Tirgul 12 Trees 1.
Object Oriented Programming
Strings, Characters and Regular Expressions
Strings, StringBuilder, and Character
Operators Overloading
String and String Buffers
Object Oriented Programming
באר-שבע 2015 יום עיון
תכנות מונחה עצמים.
SQL בסיסי – הגדרה אינדוקטיבית
F4105 JAVA PROGRAMMING F4105 Java Programming
בניית מחסנית סטטית Static Stack Implementation מורים מובילים תשע"ה
ניתוח מערכות מידע תכנות ב C#
תכנות מכוון עצמים ושפת JAVA
תיכון אהל שם, רמת גן קורס PHP – הרצאה מס' 10
תוכנה 1 תרגול 13 – סיכום.
פולימורפיזם מתקדם ממשקים בC# עריכה ועיצוב: קרן הרדי
CS2011 Introduction to Programming I Strings
In Java, strings are objects that belong to class java.lang.String .
Presentation transcript:

מחרוזות – הטיפוס String מוטי בן-ארי, רגוניס נוע המחלקה להוראת המדעים מכון ויצמן למדע

Copyright © Moti Ben-Ari, Noa Ragonis מה שזה לא !! הטיפוס String מוגדר מראש כטיפוס לכל דבר. עצם מטיפוס String אינו מערך של תווים!! (ניתן להמיר מן האחד לשני.) עצם מטיפוס String הוא קבוע שאי-אפשר לשנות על ידי פנייה לתווים בודדים!! עיבוד מחרוזות מתבצע ע"י פירוק לתת-מחרוזות והרכבה בשרשור. קיים טיפוס StringBuffer הדומה למחרוזות המוכרות מ-Pascal ו-C. לא נהוג להשתמש בו. Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis מחרוזת כעצם String s = “abcde”; String t = “fghi”; קיימת גם פעולה יוצרת המייצרת מחרוזת חדשה ממחרוזת קיימת. t abcde fghi s Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis מחרוזת כעצם - השמה s = t; קיים "איסוף זבל" (garbage collection) למחזור הזיכרון. abcde fghi s t Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis מחרוזת כעצם - השוואה String s = “abcde”; t = “abcde”; String u = “ab”; v = “cde”; w = u+v; ( s == t ) // true !! ( s == w ) // false !! ( s.equals(w) ) // true abcde s w Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis המלצות להשתמש ב-String. לבצע השוואות ע"י equals. לייצר מחרוזות חדשות ע"י שרשור, אפילו שרשור של המחרוזת הריקה! String t = s + “”; לא תמיד חייבים לייצר משתנה: setText(title + “ “ + version); Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis הקצאת זיכרון ב-C (ו-C++) הקצאה "מופקרת" של זיכרון. ב-Pascal ו-C++, הקצאת זיכרון של עצמים (רשומות), ושחרור ידני. סכנה של "זליגת זיכרון" (memory leaks). ב-Java הקצאה של עצמים. אין שחרור ידני. s = null; איסוף זבל מתבצע באופן אוטומטי "מאחורי הקלעים", לכן אין זליגה. סכנה של פגיעה בזמן תגובה בתכניות. Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis שרשור פעולת השרשור מוגדרת על ידי האופרטור +. שרשור מייצר עצם חדש: s = s + “***” + t + ‘\n’; צ'ופר רציני: כל ערך עובר המרה אוטומטית למחרוזת כאשר + מופיע: int count = …; System.out.println(“Count is = “ + count); Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis הפעולה toString ההמרה מתבצעת ע"י זימון סמוי לפעולה toString של העצם. ניתן לשנות פעולה זו כנדרש: class Pepper { public String toString() { return “Size = “ + size + “, color = “ + color + “, weight (kg) = “ + weight; } Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis הפעולה length לכל מחרוזת קיימת פעולה length(), המחזירה את האורך של המחרוזת. דוגמה: System.out.println( “The size of “ + s + “ is “ + s.length() ); Copyright © Moti Ben-Ari, Noa Ragonis

מחרוזת לעומת מערך (length) שים לב!! מחרוזת היא עצם שעליה מוגדרת פעולה ללא פרמטרים length(). if (s.length() > 0) …. לכל מערך קיימת תכונה length. int[] a = new int[10]; for (int i = 0; i < a.length; i++) Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis גישה לתווים בודדים ניתן לקרוא תווים בודדים לפי מיקומם, אך אי-אפשר לשנות אותם: for (int i = 0; i < s.length(); i++) if (s.charAt(i) == ‘*’) count++; Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis השוואות בין מחרוזות equals מחזיר boolean. compareTo משווה שתי מחרוזות לפי סדר lexicographic. הפונקציה מחזירה int: if (s.compareTo(t) < 0) // s before t else if (s.compareTo(t) > 0) // s after t else // s same as t Copyright © Moti Ben-Ari, Noa Ragonis

פעולות מגוונות בטיפוס String חיפושים: startsWith , endsWith, indexOf, lastIndexOf. שליפת תת-מחרוזת: substring. צמצום רווחים בקצוות: trim. אותיות גדולות/קטנות: toLowerCase, toUpperCase. Copyright © Moti Ben-Ari, Noa Ragonis

דוגמה – מחיקת תת-מחרוזת String delete(String s, int from, int to) { String start = s.substring(0, from); String end = s.substring(to+1); return start + end; } s = delete(s, 4, 7); from to length-1 Copyright © Moti Ben-Ari, Noa Ragonis

דוגמה – הכנסת תת-מחרוזת String insert(String s, String sub, int at) { String start = s.substring(0, at); String end = s.substring(at); return start + sub + end; } s = insert(s, " the", 4); at length-1 Copyright © Moti Ben-Ari, Noa Ragonis

Copyright © Moti Ben-Ari, Noa Ragonis class ReverseWords { static String s = "The quick brown fox jumped over the lazy dog"; static String t = ""; public static void main(String[] args) { int space = s.lastIndexOf(' '); while (space != -1) { t = t + s.substring(space+1) + " "; s = s.substring(0, space); space = s.lastIndexOf(' '); } t = t + s; System.out.println(t); Copyright © Moti Ben-Ari, Noa Ragonis