Как разобрать значение String
в Java до типа char
?
Я знаю, как это сделать для int и double (например, Integer.parseInt( "123" )). Есть ли класс для строк и символов?
Как разобрать значение String
в Java до типа char
?
Я знаю, как это сделать для int и double (например, Integer.parseInt( "123" )). Есть ли класс для строк и символов?
Если ваша строка содержит ровно один символ, самый простой способ конвертировать ее в символ - это, вероятно, вызов метода charAt
:
char c = s.charAt(0);
Вы можете использовать . charAt (int) с помощью строк для извлечения значения char по любому индексу. Если вы хотите преобразовать String в массив char, попробуйте вызвать . ToCharArray() в строке.
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']
вы можете использовать этот трюк:
String s = "p";
char c = s.charAt(0);
Если строка длиной 1 символ, просто возьмите этот символ. Если строка не длинна 1 символ, ее нельзя разобрать в символ.
String string = "This is Yasir Shabbir ";
for(char ch : string.toCharArray()){
}
или Если вы хотите индивидуально, вы можете как
char ch = string.charAt(1);
org.apache.commons.lang.StringEscapeUtils. (un) Методы EscapeJava - это probaby, что вы хотите
Ответ от brainzzy не мой:
Самый простой способ преобразования String
в char
использует 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
Вот полный 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 Name:");
fatherName=scanString.nextLine();
System.out.print("Mother 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();
}
}
Если вы хотите разобрать String на char, тогда как объект String представляет более одного символа, вы просто просто используете следующее выражение: char c = (char) Integer.parseInt(s). Где s равно String, который вы хотите разбор. Большинство людей забывают, что char представляет 16-битовое число и, следовательно, может быть частью любого численного выражения:)
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));
}
}
}
Вы можете сделать следующее:
String str = "abcd";
char arr[] = new char[len]; // len is the length of the array
arr = str.toCharArray();
Вы можете использовать функцию .charAt(int) со строками, чтобы получить значение char в любом индексе. Если вы хотите преобразовать String в массив char, попробуйте вызвать .toCharArray() в String. Если строка длиной 1 символ, просто возьмите этот символ, вызвав .charAt(0) (или .First() в С#).
Вы можете попробовать это, короткое и эффективное:
public void(String word){
int longitud = word.length();
String arregloDado[] = new String[longitud];
for(int i = 0; i < arregloDado.length; i++){
arregloDado[i] = Character.toString(word.charAt(i));
}
}
Возможно, я немного опоздал, но я нашел это полезным, понял кадена как String и оставил название столбца как Convert to.: -)