Practical Coding in Java

Learn to write and validate your own code

Darren Kessner, PhD

(revised September 1, 2025)

Previous: 2. Strings and Math

Strings

String Indexing

String s = "HELLOWORLD";

Java uses 0-based indexing for Strings: the first position is indicated by 0, the next position by 1, etc.

\[ \underset{0}{\fbox{ H }} \underset{1}{\fbox{ E }} \underset{2}{\fbox{ L }} \underset{3}{\fbox{ L }} \underset{4}{\fbox{ O }} \underset{5}{\fbox{ W }} \underset{6}{\fbox{ O }} \underset{7}{\fbox{ R }} \underset{8}{\fbox{ L }} \underset{9}{\fbox{ D }} \]

String Objects

A String variable is a reference to a String object. You can use this reference to call String methods with the dot notation:

s.length(); // returns 10

Substrings

You specify sub-strings by specifying begin and end indices.

The String method substring(begin, end) returns the substring with indices in the half-open interval [begin, end), i.e. all indices up to but not including end.

s.substring(0, 5); // returns "HELLO"
s.substring(5, 10); // returns "WORLD"

The end argument has a default value of length(). In other words, substring(begin) is equivalent to substring(begin, length()), and returns the substring starting at begin and including all the characters through the end of the string.

s.substring(5); // returns "WORLD"

String Comparisons

The equality operator == compares two String references, returning true if they refer to the same Object. Note that this is different from comparing the values of the String objects.

To compare String values, you should use the equals() method.

s.equals(t); // returns true <-> s and t have identical values

Next: