How to convert/parse from String to char in java?

How do I parse a String value to a char type, in Java?

I know how to do it to int and double (for example Integer.parseInt("123")). Is there a class for Strings and Chars?

4

14 Answers

If your string contains exactly one character the simplest way to convert it to a character is probably to call the charAt method:

char c = s.charAt(0);
1

You can use the .charAt(int) function with Strings to retrieve the char value at any index. If you want to convert the String to a char array, try calling .toCharArray() on the String.

String g = "line";
char c = g.charAt(0); // returns 'l'
char[] c_arr = g.toCharArray(); // returns a length 4 char array ['l','i','n','e']
1

you can use this trick :

String s = "p";
char c = s.charAt(0);
3

I found this useful:

double --> Double.parseDouble(String);
float --> Float.parseFloat(String);
long --> Long.parseLong(String);
int --> Integer.parseInt(String);
char --> stringGoesHere.charAt(int position);
short --> Short.parseShort(String);
byte --> Byte.parseByte(String);
boolean --> Boolean.parseBoolean(String);
5

If the string is 1 character long, just take that character. If the string is not 1 character long, it cannot be parsed into a character.

3
 String string = "This is Yasir Shabbir "; for(char ch : string.toCharArray()){ }

or If you want individually then you can as

char ch = string.charAt(1);

org.apache.commons.lang.StringEscapeUtils.(un)EscapeJava methods are probaby what you want

Answer from brainzzy not mine :

The simplest way to convert a String to a char is using charAt():

String stringAns="hello";
char charAns=stringAns.charAt(0);//Gives You 'h'
char charAns=stringAns.charAt(1);//Gives You 'e'
char charAns=stringAns.charAt(2);//Gives You 'l'
char charAns=stringAns.charAt(3);//Gives You 'l'
char charAns=stringAns.charAt(4);//Gives You 'o'
char charAns=stringAns.charAt(5);//Gives You:: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5

Here is a full script:

import java.util.Scanner;
class demo { String accNo,name,fatherName,motherName; int age; static double rate=0.25; static double balance=1000; Scanner scanString=new Scanner(System.in); Scanner scanNum=new Scanner(System.in); void input() { System.out.print("Account Number:"); accNo=scanString.nextLine(); System.out.print("Name:"); name=scanString.nextLine(); System.out.print("Father's Name:"); fatherName=scanString.nextLine(); System.out.print("Mother's Name:"); motherName=scanString.nextLine(); System.out.print("Age:"); age=scanNum.nextInt(); System.out.println(); } void withdraw() { System.out.print("How Much:"); double withdraw=scanNum.nextDouble(); balance=balance-withdraw; if(balance<1000) { System.out.println("Invalid Data Entry\n Balance below Rs 1000 not allowed"); System.exit(0); } } void deposit() { System.out.print("How Much:"); double deposit=scanNum.nextDouble(); balance=balance+deposit; } void display() { System.out.println("Your Balnce:Rs "+balance); } void oneYear() { System.out.println("After one year:"); balance+=balance*rate*0.01; } public static void main(String args[]) { demo d1=new demo(); d1.input(); d1.display(); while(true) {//Withdraw/Deposit System.out.println("Withdraw/Deposit Press W/D:"); String reply1= ((d1.scanString.nextLine()).toLowerCase()).trim(); char reply=reply1.charAt(0); if(reply=='w') { d1.withdraw(); } else if(reply=='d') { d1.deposit(); } else { System.out.println("Invalid Entry"); } //More Manipulation System.out.println("Want More Manipulations: Y/N:"); String manipulation1= ((d1.scanString.nextLine()).toLowerCase()).trim(); char manipulation=manipulation1.charAt(0); System.out.println(manipulation); if(manipulation=='y') { } else if(manipulation=='n') { break; } else { System.out.println("Invalid Entry"); break; } } d1.oneYear(); d1.display(); }
}

If you want to parse a String to a char, whereas the String object represent more than one character, you just simply use the following expression:char c = (char) Integer.parseInt(s). Where s equals the String you want to parse. Most people forget that char's represent a 16-bit number, and thus can be a part of any numerical expression :)

3
import java.io.*;
class ss1
{ public static void main(String args[]) { String a = new String("sample"); System.out.println("Result: "); for(int i=0;i<a.length();i++) { System.out.println(a.charAt(i)); } }
}
1

You can do the following:

String str = "abcd";
char arr[] = new char[len]; // len is the length of the array
arr = str.toCharArray();
1

You can simply use the toCharArray() to convert a string to char array:

 Scanner s=new Scanner(System.in); System.out.print("Enter some String:"); String str=s.nextLine(); char a[]=str.toCharArray();

An Essay way :

public class CharToInt{
public static void main(String[] poo){
String ss="toyota";
for(int i=0;i<ss.length();i++) { char c = ss.charAt(i); // int a=c; System.out.println(c); } }
} 

For Output see this link: Click here

Thanks :-)

You can use the .charAt(int) function with Strings to retrieve the char value at any index. If you want to convert the String to a char array, try calling .toCharArray() on the String. If the string is 1 character long, just take that character by calling .charAt(0) (or .First() in C#).

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like