Как разобрать String
значение для char
типа в Java?
Я знаю, как сделать это для int и double (например Integer.parseInt("123")
). Есть ли класс для строк и символов?
Как разобрать String
значение для char
типа в Java?
Я знаю, как сделать это для int и double (например Integer.parseInt("123")
). Есть ли класс для строк и символов?
Ответы:
Если ваша строка содержит ровно один символ, самый простой способ преобразовать ее в символ - это вызвать charAt
метод:
char c = s.charAt(0);
Вы можете использовать функцию .charAt (int) со строками для получения значения char по любому индексу. Если вы хотите преобразовать String в массив char, попробуйте вызвать .toCharArray () для 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']
Вы можете использовать этот трюк:
String s = "p";
char c = s.charAt(0);
"123"
в '1'
, это то, что вы после?
Если строка длиной 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 - это то, что вам нужно
Ответ от бреда не мой
Самый простой способ преобразовать a String
в a 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
Вот полный сценарий:
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();
}
}
Возможно, я немного опоздал, но я нашел это полезным, понимаю кадену как String и оставил заголовок столбца как Convert to. :-)
ОБНОВЛЕНИЕ: Итак, я наконец-то вернул свой пароль, я обновил его копируемым текстом, чтобы другие могли просто копировать и вставлять как всегда, а для некоторых других можно получить индексацию данных (если это так). :-) Счастливого ноябрьского уса.
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);
char --> StringGoesHere.parseFloat(int position);
это правильно? Честно говоря, я не проверял, но я уверен, что у String
него нет parseFloat
метода, и даже если он есть, я не могу понять, почему это было бы тем, что вы пытаетесь сделать там.
Если вы хотите проанализировать String для char, тогда как объект String представляет более одного символа, вы просто используете следующее выражение: char c = (char) Integer.parseInt (s) . Где s равно строке, которую вы хотите проанализировать. Большинство людей забывают, что символы представляют 16-битное число и, следовательно, могут быть частью любого числового выражения :)
char
есть, так же, как int
и double
. Он даже привел пример String
«123». а кто сказал, что нельзя конвертировать char
в a String
с длиной больше единицы и обратно? Попробуйте сами с char c = 123
: String.valueOf((int) c).equals("123")
возврат true
.
int
. Для вашего примера вам нужно привести к. int
Это означает, что вы работаете не с оригиналом char
, а с оператором int
, который каким-то образом соответствует оригиналу char
.
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();
String str = "abc"; char[] char_str = str.toCharArray();
Вы можете просто использовать toCharArray()
для преобразования строки в массив символов:
Scanner s=new Scanner(System.in);
System.out.print("Enter some String:");
String str=s.nextLine();
char a[]=str.toCharArray();
Путь эссе:
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); } }
}
Для вывода смотрите эту ссылку: нажмите здесь
Спасибо :-)
Вы можете использовать функцию .charAt (int) со строками для получения значения char по любому индексу. Если вы хотите преобразовать String в массив char, попробуйте вызвать .toCharArray () для String. Если длина строки составляет 1 символ, просто возьмите этот символ, вызвав .charAt (0) (или .First () в C #).