$show=/label

String codePointAt() method in java with example - Internal Implementation

SHARE:

Java String codePointAt() method. Learn codePointAt() method in Java with example in java.lang.String package and its internal implementation. Learn about String class methods usage.

String codePointAt() in Java:

The codePointAt(int index) method of String class takes an index as a parameter and returns a character unicode point at that index in String contained by String or we can say charPointAt() method returns the “unicode number” of the character at that index. The index refers to char values (Unicode code units) and the value of index must be lie between 0 to length-1.

If the char value present at the given index lies in the high-surrogate range, the following index is less than the length of this sequence, and the char value at the following index is in the low-surrogate range, then the supplementary code point corresponding to this surrogate pair is returned. Otherwise, the char value at the given index is returned.


String codePointAt


Syntax:


public int codePointAt​(int index)



Return value: int

Note: Always index value should be in range between 0 and string length-1. If index is not in this range then will be thrown IndexOutOfBoundsException ( if the index argument is negative or not less than the length of this string). 

codePointAt() method Example 1:


Example program to finding the code point at the given index in a string.
package examples.java.w3schools.string;

public class StringcodePointAtExample {
 public static void main(String[] args) {

  String input = "VENKATESH";
  int value = input.codePointAt(4);
  System.out.println("Code point value at index 4 is "+value);
 }
}


Output:

Code point value at index 4 is 65



Char A is present in input string at index 4 and returned codepoint at that index is 65 which is a ASCII code of char A.



codePointAt() method Example 2:


Example program to get the code point for each character in the input string.

package examples.java.w3schools.string;

public class StringcodePointAtExample2 {
 public static void main(String[] args) {

  String input = "JAVA-W3SCHOOLS";

  for (int i = 0; i < input.length(); i++) {
   System.out.println("Code point value at index " + i + " is " + input.codePointAt(i));
  }
 }
}


Output:



Code point value at index 0 is 74
Code point value at index 1 is 65
Code point value at index 2 is 86
Code point value at index 3 is 65
Code point value at index 4 is 45
Code point value at index 5 is 87
Code point value at index 6 is 51
Code point value at index 7 is 83
Code point value at index 8 is 67
Code point value at index 9 is 72
Code point value at index 10 is 79
Code point value at index 11 is 79
Code point value at index 12 is 76
Code point value at index 13 is 83




codePointAt() method Example 3:




Example program to see if index is out of range (not in between 0 and length-1).


package examples.java.w3schools.string;

public class StringcodePointAtExample3 {
 public static void main(String[] args) {

  String input = "JAVA-W3SCHOOLS";
  input.codePointAt(input.length()+1);

 }
}



Output:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: index 15,length 14
 at java.base/java.lang.String.checkIndex(String.java:3278)
 at java.base/java.lang.String.codePointAt(String.java:723)
 at w3schools/examples.java.w3schools.string.StringcodePointAtExample3.main(StringcodePointAtExample3.java:7)


StringIndexOutOfBoundsException exception is thrown because we provided for index 15 which more that its length 15.

here is the place where the exception is thrown from internal String class api.

  static void checkIndex(int index, int length) {
        if (index < 0 || index >= length) {
            throw new StringIndexOutOfBoundsException("index " + index +
                                                      ",length " + length);
        }
    }


Internal Implementation code:


How codePointAt() method works internally and how it is implemented.
Below is the internal code from String class. Always remember, String class perform two checks on input string as below.

1) Latin checkIndex
2) UTF16 check
public int codePointAt(int index) {
        if (isLatin1()) {
            checkIndex(index, value.length);
            return value[index] & 0xff;
        }
        int length = value.length >> 1;
        checkIndex(index, length);
        return StringUTF16.codePointAt(value, index, length);
    }


Returns the character (Unicode code point) at the specified index. The index refers to char values (Unicode code units) and ranges from 0 to length() - 1.

If the char value specified at the given index is in the high-surrogate range, the following index is less than the length of this String, and the char value at the following index is in the low-surrogate range, then the supplementary code point corresponding to this surrogate pair is returned. Otherwise, the char value at the given index is returned.

Internal code checking mechanism:


1) Check the string has Latin character set.
2) If Latin char set then
a) Check index is with in range. If not, throws StringIndexOutOfBoundsException.
b) Get the char at given index and perform logical AND operation with value 0xff.
c) Return the value of step b(above).
3) If UTF16 char set then
a) Getting new length for UTF char based on coder value. i.e 1 for UTF16.
b) Check index is with in range. If not, throws StringIndexOutOfBoundsException.
c) Return code point value for given index by calling StringUTF16.codePointAt(value, index, length);

Conclusion:


We have learnt, how to use codePointAt() method with examples in String class and how it is implemented internally in String class.


COMMENTS

BLOGGER

About Us

Author: Venkatesh - I love to learn and share the technical stuff.
Name

accumulo,1,ActiveMQ,2,Adsense,1,API,31,ArrayList,16,Arrays,2,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,4,Collections,20,Collector,1,Command Line,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,5,Core Java,72,Corona India,1,Create,2,CSS,1,Date,2,Date Time API,3,Dictionary,1,Difference,1,Download,1,Eclipse,2,Efficiently,1,Error,1,Errors,1,Exception,1,Exceptions,2,Fast,1,Files,9,Float,1,Font,1,For examples,1,For loop examples,1,For Loop in Java,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,4,Grant,1,Grep,1,HashMap,1,HTML,2,HttpClient,2,Immutable,1,Inner for loops,1,Installation,1,Interview Questions,5,Iterate,2,Jackson API,3,Java,28,Java 10,1,Java 11,5,Java 12,5,Java 13,2,Java 14,2,java 5 For loop,1,Java 8,47,Java 9,1,Java Design Patterns,1,Java Files,1,Java for loop,1,Java Program,2,Java Programs,65,java.lang,5,java.util. function,1,jQuery,1,Kotlin,10,Kotlin Programs,6,Lambda,1,lang,29,Leap Year,1,live updates,1,Math,1,Maven,1,Method References,1,Mockito,1,MongoDB,3,Nested for loop,1,Nested for loop examples,1,New Features,1,Operations,1,Optional,4,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,1,Softwares,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Stream,2,Streams,11,String,48,String Programs,8,String Revese,1,Swing,1,System,1,Tags,1,Threads,8,Tomcat,1,Tomcat 8,1,Troubleshoot,16,Unix,2,Updates,3,util,5,While Loop,1,
ltr
item
JavaProgramTo.com: String codePointAt() method in java with example - Internal Implementation
String codePointAt() method in java with example - Internal Implementation
Java String codePointAt() method. Learn codePointAt() method in Java with example in java.lang.String package and its internal implementation. Learn about String class methods usage.
https://1.bp.blogspot.com/-kSgTycznj34/XG5lkvrnGdI/AAAAAAAABD0/uxmMuOeGibUTYi1Cm2jxqqJa-VI14UYWACLcBGAs/s320/String%2BcodePointAt.PNG
https://1.bp.blogspot.com/-kSgTycznj34/XG5lkvrnGdI/AAAAAAAABD0/uxmMuOeGibUTYi1Cm2jxqqJa-VI14UYWACLcBGAs/s72-c/String%2BcodePointAt.PNG
JavaProgramTo.com
https://www.javaprogramto.com/2019/02/string-codepointat.html
https://www.javaprogramto.com/
https://www.javaprogramto.com/
https://www.javaprogramto.com/2019/02/string-codepointat.html
true
3124782013468838591
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content