Characters and strings
This presentation is the property of its rightful owner.
Sponsored Links
1 / 37

Characters and Strings PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Characters and Strings

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


Characters and strings

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


  • Login