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?
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: 5Here 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 :)
3import 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#).