characters and strings n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Characters and Strings PowerPoint Presentation
Download Presentation
Characters and Strings

Loading in 2 Seconds...

play fullscreen
1 / 37

Characters and Strings - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

Characters and Strings. Characters. *Digression:. 00000000 01000001. 16 bits. The data type char represents a single character in Java. Character values are written as a symbol: ' a ' , ' ) ' , ' % ' , ' A ' , etc. A char value in Java is really represented as an integer.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Characters and Strings' - valentine-newman


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
characters and strings

Characters and Strings

Characters and Strings

characters
Characters

*Digression:

00000000 01000001

16 bits

  • The data type char represents a single character in Java.
    • Character values are written as a symbol: 'a', ')', '%', 'A', etc.
    • A char value in Java is really represented as an integer.
      • Each character has an associated 16-bit integer value*.

0* 215 + …………. +0*27 + 1* 26 + 0* 25 + 0* 24 + 0* 23 + 0*22 + 0*21 + 1*20

Characters and Strings

characters1
Characters
  • So: a char value in Java is really represented as an integer. Thus:
  • The integer value associated with the character is based upon a code.
    • The ASCII code represents 256 characters including all upper and lower case English letters, the numbers between 0 and 9, punctuation, and some unprintable characters.
    • ASCII is a subset of the UNICODE character set.
    • The UNICODE character set contains 34,168 distinct characters.
      • The major languages from the Americas, Europe, Middle East, Africa, India, Asia, and Pacifica are represented.
      • Unicode (16 bits) support for every character in the world: ‘\u0000’ to ‘\uFFFF’

Characters and Strings

characters2
Characters
  • The printable ASCII characters include tabs, new lines, carriage return, single and double quote.
    • New line = '\n'
    • Tab = '\t'
    • Carriage return = '\r'
    • Single quote = '\''
    • Double quote = '\ "‘

System.out.println(“Line one \nLine two”);

Characters and Strings

non printable characters
Non-printable Characters
  • There are also characters contained in ASCII that are not printable.
    • Bell tone = bel (ASCII 7)
    • Characters 0 to 32 are non-printable characters.
    • Character 127 (delete) is also non-printable character

Characters and Strings

characters3
Characters
  • To define a character use the char data type.

char firstChar = 'a', secondChar = 'A';

Notice that two integers are declared and initialized on the same lane.

  • To convert an integer into a character you can typecast the integer.

char thirdCharacter = (char) 120;

char thirdCharacter = ‘x’;

Characters and Strings

characters4
Characters
  • You can print a char as an integer using type casting.

System.out.println( (int) 'C');

Output: 67

  • Comparing characters is done based upon their integer representation.

True or false? 'c' < 'C'

True or false? '1' < '4'

Characters and Strings

characters5
Characters

import java.io.* ;

public class CharString {

public static void main( String args[] ) {

System.out.println('A');

System.out.println('\u0041');

System.out.println((char)65);

}

}

Output:

AAA

Characters and Strings

characters6
Characters

import java.io.* ;

public class CharString {

public static void main( String args[] ) {

int a = 98;

System.out.println(a);

System.out.println((char)a);

System.out.println('a');

}

}

Output:

98ba

Characters and Strings

strings
Strings
  • A string is composed of individual characters that are treated as a single unit.
    • The individual characters 'h', 'e', 'l', 'l', and 'o' are combined into the string "hello".
  • A string may contain letters, digits, and special characters such as +, -, etc.
  • String Examples:
    • "My name is Matilda."
    • "1 + 2 = 3“

Characters and Strings

strings1
Strings

stringName

Here comes string content.

  • The data type of a string is String.
    • The capital S of String indicates that this data type is not a primitive data type.
    • In fact, String is a complex data type.
      • When an individual string is created, it is an object of type String.

Characters and Strings

string constructors
String Constructors
  • Java provides various string constructors.
  • Assume String s1; (What’s the value of s1 so far?)
    • s1 = new String( );
      • This creates a string of length zero with no characters.
    • s1 = new String( s );
      • This creates a string that is a copy of the characters stored in String s that is passed to the constructor.
    • s1 = "This is a string";
      • This is a special shortcut constructor, ONLY available to Strings.

Characters and Strings

strings2
Strings
  • Each character of a String has an associated index.
    • The first letter of a string has an index of zero (0), the second letter has an index of one (1), … the last letter has an index of (string length – 1).
    • What is the string length of "hello"?
    • What is the index of the second 'l' in the word "hello"?

Characters and Strings

string methods
String Methods
  • The length of a string can be found by:
    • stringName.length();
      • The first element of a string is always zero.
  • A character at a specific position can be found by:
    • stringName.charAt( 3 );
      • Where 3 is an index into the string.

stringName

stringName.charAt(3)

The variable refers to the whole string

The method returns the character at position #3

Characters and Strings

strings3
Strings
  • Strings are immutable !!!
  • Once you create a string and initialize it you can not change the string.
    • You can assign a new string to the string variable.
      • The original string is lost (will be handled by the java garbage collection process.
    • You can not add new characters or remove existing characters.

Characters and Strings

changing case
Changing Case
  • To change the case of characters in a string:
    • stringName.replace( 'l', 'L' );
      • This returns a String with all characters 'l' in the String replaced by 'L'. If there are no 'l's in the String, the original string is returned.
    • stringName.toUpperCase( );
      • This will return a String with all lower case letters to capital letters.
    • stringName.toLowerCase( );
      • This will return a String with all capital letters to lower case letters.

Characters and Strings

string comparison
String Comparison
  • Are two strings equal to one another?
    • stringName1.equals( stringName2 );
      • The result is true if the two strings are the same and false if the two strings are different.
      • Capital and Lower case letters are considered to be different.
    • stringName1 == stringName2;
      • The result is only true if stringName1 and stringName2 both refer to the same object in memory.

Characters and Strings

string comparison1
String Comparison
  • You can ignore the case of letters during comparison using:
    • stringName1.equalsIgnoreCase( StringName2 );
      • That means that "hello" is equal to "HELLO"
  • You can also compare strings using
    • stringName1.compareTo( StringName2 );
      • This comparison returns 0 if the strings are equal, a negative number if stringName less than stringName2, and a positive number if stringName greater than stringName2.

Characters and Strings

string comparison2
String Comparison
  • To compare portions of two strings:
    • stringName1.regionMatches( 0, StringName2, 0, 5 );
      • The first parameter 0 is the starting index in stringName1, the third parameter is the starting index in stringName2, and the last argument is the number of characters to compare.
      • This method returns true only if the members compared are equal.
        • "ello"=="ello"but"ello"!="Ello“
    • stringNam1e.regionMatches( true, 0, StringName2, 0, 5 );
      • Here, the true says we want to ignore case

Characters and Strings

locating characters and substrings
Locating Characters and Substrings
  • indexOf can be used to find characters in strings.
    • stringName.indexOf( (int) 'a' );
      • This returns the index of the first ‘a’ in the string if it is found. If it is not found the result is -1.
    • stringName.indexOf( (int) 'a', 2 );
      • This is similar to the first except the second parameter specifies which index of the string the search should begin.
    • stringName.indexOf( "a" );
      • This is the same as the first except the parameter is a String rather than an int.

Characters and Strings

characters7
Characters

import java.io.* ;

public class CharString {

public static void main( String args[] ) {

String s = "Vladimir";

System.out.println( s.indexOf((int) 'i') );

System.out.println( s.indexOf((int) 'i',5) );

System.out.println( s.indexOf("i") );

System.out.println( s.indexOf('i') ); }

}

Output:

4

6

4

4

Characters and Strings

extracting substrings
Extracting Substrings
  • Methods to get substrings out of strings are:
    • stringName.substring( 10 );
      • This returns the string that begins at index 10 and ends at the end of the original string.
    • stringName.substring( 10, 15 );
      • This returns the string that begins at index 10 and ends at one index before 15.

Characters and Strings

concatenating strings
Concatenating Strings
  • We have already used string concatenation with:
    • "this is a string" + stringName
  • To concatenate two string variables:
    • stringName3 = stringName1.concat( stringName2 );
      • This returns the second string added to the end of the first string.

Characters and Strings

name java
Name.java

public class Name {

public static void main( String args[] ) {

String name;

int midLoc;

name = "Nan";

name = name.concat( " Schaller" );

midLoc = name.indexOf( " " );

name = name.substring( 0, midLoc ) + " Carol" +

name.substring( midLoc );

System.out.println( name );

// Print out first name, a character per line

for (int i=0; i<name.length() && name.charAt(i) != ' '; i++ ) {

System.out.println( name.charAt(i) );

}

}

}

There is a simpler way to write this:

for(int i=0; i<midLoc; i++) {

System.out.println(name.charAt(i));

}

Characters and Strings

other string methods
Other String Methods
  • Using the Javadoc documentation you can learn about the many other String methods.
    • Methods for comparing regions of strings.
    • Converting variables of other data types to strings.

Characters and Strings

primitive vs complex data types
Primitive vs. Complex Data Types

let

A

  • When you define a primitive data type (int, char, double, bool) the memory location is allocated.
    • The number of bytes is always the same to store a value.
    • char let = 'A';

Characters and Strings

primitive vs complex data types1
Primitive vs. Complex Data Types
  • A complex data type is a data type defined by a class.
    • String is an example of a complex data type.
    • Complex data types usually begin with a capital letter.
    • The amount of storage required for a complex data type varies depending upon how large the actual values are.
    • Complex data types are also called reference data types.

Characters and Strings

primitive vs complex data types2
Primitive vs. Complex Data Types
  • When we define a String a memory location is allocated to hold a reference to the actual location of the information.
    • The reference is the location of the first item in memory.
    • The information is stored sequentially beginning at the reference location.

Characters and Strings

primitive vs complex data types3
Primitive vs. Complex Data Types

nameA

Rochester

String nameA, nameB;

nameA = "Rochester";

nameB = nameA;

1008

nameB

2044

nameA

2044

1012

2044

R o

c h

2048

e s

2052

t e

2056

r

2060

Characters and Strings

primitive vs complex data types4
Primitive vs. Complex Data Types

nameA

2044

nameB

Rochester

  • If we define another string and assign it equal to name then they will both point to the same location in memory.

string nameB = nameA;

    • Now nameA and nameB both point to memory location 2044.

Characters and Strings

passing primitive data to methods
Passing Primitive Data to Methods
  • If a program passes a variable that has a primitive data type to a method, the actual value is passed using call-by-value.
    • The advantage is that the original value can not be modified by the method.
    • The disadvantage is that a copy of the original value is made, this requires more memory.
    • In fact, Java always passes method arguments by value!
      • Even if variables are reference types.
      • I’ll try to explain this – hope you’ll get it!

Characters and Strings

passing objects to methods
Passing Objects to methods
  • When we pass a String to a method we are passing it using call-by-reference mechanism.
    • This means that we do not pass the actual string, we are passing the contents of the memory location that holds the reference (address) to the actual string.
  • A problem associated with call-by-reference is that the original object may be modified.
  • All objects (both Java defined and user defined) are passed using call-by-reference.

Characters and Strings

passing objects to methods1
Passing Objects to methods
  • Some of the String methods require a String as a parameter to the method.
    • For example, stringName1.equals(stringName2);
    • The method definition requires a String object to be passed to the method equals.
    • Sometimes == results in different value than stringName1.equals(stringName2);
    • When? We want some example !!!

Characters and Strings

slide34

Passing Objects to methods

String

word1 == word2 is true

word1.equals(word2) is true

word1

Java

:

word2

String

word1 == word2 is false

word1.equals(word2) is true

word1

Java

:

word2

String

Java

  • Sometimes == results in different value than *.equals !!!

Characters and Strings

returning things from methods
Returning Things from Methods
  • When a method returns an object, a memory reference is really returned.
    • Not the actual data.
  • When a method returns a primitive data type, then the actual value is returned.

Characters and Strings

stringbuffer
StringBuffer
  • The String class provides string objects that cannot be changed (are immutable).
  • The StringBuffer class provides mutable objects.

Characters and Strings

palindrome
Palindrome

// This program checks a given string to see if it is a palindrome

public class Palin {

public static void main( String args[] ) {

String original = "mom", reverse = "";

// Reverse it

for (int i=0; i<original.length(); i++) {

reverse = original.charAt( i ) + reverse;

}

// Now check it ( note that orig == reverse does not work )

if (original.equalsIgnoreCase(reverse)) {

System.out.println( "Palindrome" );

} else {

System.out.println( "Not a palindrome !!!" );

}

}

}

Characters and Strings