Làm cách nào để phân tích một String
giá trị thành một char
loại, trong Java?
Tôi biết làm thế nào để làm điều đó đến int và double (ví dụ Integer.parseInt("123")
). Có một lớp cho Chuỗi và Chars?
Làm cách nào để phân tích một String
giá trị thành một char
loại, trong Java?
Tôi biết làm thế nào để làm điều đó đến int và double (ví dụ Integer.parseInt("123")
). Có một lớp cho Chuỗi và Chars?
Câu trả lời:
Bạn có thể sử dụng hàm .charAt (int) với Chuỗi để truy xuất giá trị char ở bất kỳ chỉ mục nào. Nếu bạn muốn chuyển đổi Chuỗi thành một mảng char, hãy thử gọi .toCharArray () trên Chuỗi.
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']
bạn có thể sử dụng thủ thuật này:
String s = "p";
char c = s.charAt(0);
"123"
thành '1'
, đó có phải là những gì bạn đang theo đuổi?
Nếu chuỗi dài 1 ký tự, chỉ cần lấy ký tự đó . Nếu chuỗi không dài 1 ký tự, nó không thể được phân tách thành một ký tự.
String string = "This is Yasir Shabbir ";
for(char ch : string.toCharArray()){
}
hoặc Nếu bạn muốn cá nhân thì bạn có thể
char ch = string.charAt(1);
org.apache.commons.lang.StringEscapeUtils . (un) Các phương thức EscapeJava là probaby những gì bạn muốn
Trả lời từ brainzzy không phải của tôi:
Cách đơn giản nhất để chuyển đổi a String
thành a char
là sử dụng 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
Đây là một kịch bản đầy đủ:
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();
}
}
Tôi có thể hơi muộn nhưng tôi thấy điều này hữu ích, hiểu cadena là Chuỗi và tiêu đề cột bên trái là Chuyển đổi thành. :-)
CẬP NHẬT: Vì vậy, cuối cùng tôi đã lấy lại được mật khẩu của mình, tôi đã cập nhật bằng văn bản có thể sao chép để những người khác có thể sao chép và dán như mọi khi, và đối với một số người khác có thể lấy chỉ mục của dữ liệu (nếu có). :-) Bộ ria mép tháng 11 vui vẻ.
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);
là đúng? Thành thật mà nói tôi chưa kiểm tra, nhưng tôi khá chắc chắn String
không có parseFloat
phương pháp nào và thậm chí nếu có, tôi không thể hiểu tại sao đó lại là điều bạn sẽ cố gắng làm ở đó.
Nếu bạn muốn phân tích một Chuỗi thành một char, trong khi đối tượng String đại diện cho nhiều hơn một ký tự, bạn chỉ cần sử dụng biểu thức sau: char c = (char) Integer.parseInt (s) . Trong đó s bằng Chuỗi bạn muốn phân tích. Hầu hết mọi người quên rằng char đại diện cho một số 16 bit, và do đó có thể là một phần của bất kỳ biểu thức số nào :)
char
, giống như int
và double
. Ông thậm chí còn đưa ra ví dụ String
"123". và ai nói bạn không thể chuyển đổi từ a char
sang a String
có chiều dài lớn hơn một và ngược lại? Hãy thử nó với char c = 123
: String.valueOf((int) c).equals("123")
trả về true
.
int
. Ví dụ của bạn, bạn cần truyền tới int
, điều đó có nghĩa là bạn đang làm việc không phải với bản gốc char
, mà với một int
, điều này xảy ra bằng cách nào đó tương ứng với bản gốc 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));
}
}
}
Bạn có thể làm như sau:
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();
Bạn chỉ có thể sử dụng toCharArray()
để chuyển đổi một chuỗi thành mảng char:
Scanner s=new Scanner(System.in);
System.out.print("Enter some String:");
String str=s.nextLine();
char a[]=str.toCharArray();
Một cách tiểu luận:
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); } }
}
Đối với đầu ra xem liên kết này: Bấm vào đây
Cảm ơn :-)
Bạn có thể sử dụng hàm .charAt (int) với Chuỗi để truy xuất giá trị char ở bất kỳ chỉ mục nào. Nếu bạn muốn chuyển đổi Chuỗi thành một mảng char, hãy thử gọi .toCharArray () trên Chuỗi. Nếu chuỗi dài 1 ký tự, chỉ cần lấy ký tự đó bằng cách gọi .charAt (0) (hoặc .First () trong C #).