03 Strings ArraysX6[1]
-
Upload
midhungbabu88 -
Category
Documents
-
view
219 -
download
0
Transcript of 03 Strings ArraysX6[1]
-
8/9/2019 03 Strings ArraysX6[1]
1/5
Advanced Programming
with Java
Strings and Arrays
Oranit Dror and Ohad Barzilay
Advanced Java ProgrammingTel Aviv University
2
TheThe StringString ClassClass
Represents a character string (e.g. "Hi")
Implicit constructor:
String quote = "Hello World";
All string literals are String instances
Object has a toString() method
More details in JDK 5.0 documentation
http://java.sun.com/j2se/1.5.0/docs/
string literal
Advanced Java Programming
Tel Aviv University
3
String ImmutabilityString Immutability
Strings are constantsString s = " Tea ";
s = s.trim();
s = s.replace('T', 'S');
A string reference may be set:String s = "Tea";
s = "Sea";Advanced Java Programming
Tel Aviv University
4
String InterningString Interning
Avoids duplicate stringsString[] array = new String[1000];
for (int i=0 ; i
-
8/9/2019 03 Strings ArraysX6[1]
2/5
-
8/9/2019 03 Strings ArraysX6[1]
3/5
Advanced Java ProgrammingTel Aviv University
13
More efficient version with StringBuffer:
public static String
duplicate(String s, int times) {StringBuffer result = new StringBuffer(s);
for (int i=1; i
-
8/9/2019 03 Strings ArraysX6[1]
4/5
Advanced Java ProgrammingTel Aviv University
19
Array Creation and InitializationArray Creation and Initialization
Creating and initializing small arrayswith a-prioriknown values:
int[] odds = {1,3,5,7,9,11,13,15};
String months[] =
{"Jan", "Feb", "Mar", "Apr","May", "Jun", "July", "Aug","Sep", "Oct", "Nov", "Dec"};
Jan
String Pool
months:
Advanced Java ProgrammingTel Aviv University
20
Loop through ArraysLoop through Arrays
By promoting the array's index:
for (int i=0 ; i < months.length ; i++) {
System.out.println(months[i]);
}
In Java 5.0:
for (String month: months) {
System.out.println(month);
}
The variable month is assignedthe next element in each iteration
Advanced Java Programming
Tel Aviv University
21
Manipulating arraysManipulating arrays
The java.util.Arrays class has methods for
sorting and searching arrays e.g. public static void sort(int[] a)
public static int binarySearch(int[] a, int key)
In the java.lang.System class: public static void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length)
Advanced Java Programming
Tel Aviv University
22
Copying ArraysCopying Arrays
Nave copy:
int vec1[] = {1,2,3};
int vec2[] = {8,7,6,5};
vec1 = vec2;
Doing it by hand is
inefficient arraycopy(vec2, 0, vec1, 0, 3);
will replace 1,2,3 in vec1 with 8,7,6
Advanced Java Programming
Tel Aviv University
23
Manipulating arrays (cont.)Manipulating arrays (cont.)
What is the output of the following code:int[] odds = {1,3,5,7,9,11,13,15};
int[] newOdds = new int[8];System.arraycopy(odds, 1, newOdds, 1, 7);
for (int odd: odds) {
System.out.print(odd + " ");
}
Output:0 3 5 7 9 11 13 15
Advanced Java Programming
Tel Aviv University
24
Reading command line argumentsReading command line arguments
class CommandLineDemo
{
public static voidmain(String args[])
{
for (int i=0; i java CommandLineDemo Apple Box Car
Argument number 1 is : Apple
Argument number 2 is : Box
Argument number 3 is : Car
-
8/9/2019 03 Strings ArraysX6[1]
5/5
Advanced Java ProgrammingTel Aviv University
25
2 Dimensional Arrays
There are no 2D arrays in Java but you canbuild array of arrays:
char[] board[] = new char[3][];for (int i = 0; i