TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to JAVA

Java charAt Examples (String For Loop)

Use the charAt method to access characters from a string. Handle an exception and test performance.
CharAt. This method returns a character in a string at a certain index. The index is the argument. A valid index (one found in the string) must be used.Strings
Returns a value. CharAt returns a value, a character, that is similar to an int. Meanwhile substring() returns a new string. We find it is faster to use charAt when possible.
Example, for-loop. Often we want to loop over the characters in a string. In this example we use charAt inside a for-loop. We display each character c to the console.

Tip: For a three-character string, the valid indexes are 0, 1 and 2. The last index is equal to the length minus 1.

Java program that uses charAt, for-loop public class Program { public static void main(String[] args) { String value = "cat"; // Loop through all characters in the string. // ... Use charAt to get the values. for (int i = 0; i < value.length(); i++) { char c = value.charAt(i); System.out.println(c); } } } Output c a t
First, last chars. We use the charAt method to get first and last characters in a string (and also ones at certain offsets). Here we get the first two and last two chars.
Java program that uses first, second, last characters public class Program { public static void main(String[] args) { String value = "intercept"; // First two characters. System.out.println(value.charAt(0)); System.out.println(value.charAt(1)); // Last two characters. System.out.println(value.charAt(value.length() - 1)); System.out.println(value.charAt(value.length() - 2)); } } Output i n t p
Out of bounds exception. We must be careful when using charAt. If we pass a negative index or an index that is past the last character in the string, we get an exception.

Note: In real programs, it is typically faster to check before accessing an index. Causing an exception is slow.

Java program that causes charAt exception public class Program { public static void main(String[] args) { String value = "abc"; // Access a character out-of-range. char error = value.charAt(100); System.out.println(error); // Not reached. } } Output Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 100 at java.lang.String.charAt(Unknown Source) at Program.main(Program.java:6)
Benchmark, charAt versus substring. Sometimes we can choose between charAt and substring calls. In my testing, I found charAt is faster to call.

Version 1: This version of the code uses charAt to test a character in a string. It also uses an if-statement.

Version 2: Here we use substring: we get a 1-character substring from the string, and test it in an if-statement.

Substring

Result: Using charAt to test a character is many times faster than taking a 1-character substring.

Java program that times charAt versus substring public class Program { public static void main(String[] args) { // The example string. String value = "cat"; // Test results of our methods. System.out.println(value.charAt(2)); System.out.println(value.substring(2, 3)); long t1 = System.currentTimeMillis(); // Version 1: use charAt to test characters in a string. int count = 0; for (int i = 0; i < 10000000; i++) { if (value.charAt(2) == 't') { count++; } } long t2 = System.currentTimeMillis(); // Version 2: use substring to test characters in a string. count = 0; for (int i = 0; i < 10000000; i++) { if (value.substring(2, 3) == "t") { count++; } } long t3 = System.currentTimeMillis(); // ... Times. System.out.println(count); System.out.println(t2 - t1); System.out.println(t3 - t2); } } Output t t 0 5 ms: charAt 114 ms: substring
A review. Often we need to access in strings. With charAt, we have a simple and fast way to do this. We must check that an index is within range for the string.
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf