Jak parsować String
wartość na char
typ w Javie?
Wiem jak to zrobić int i double (na przykład Integer.parseInt("123")
). Czy istnieje klasa dla ciągów znaków i znaków?
Jak parsować String
wartość na char
typ w Javie?
Wiem jak to zrobić int i double (na przykład Integer.parseInt("123")
). Czy istnieje klasa dla ciągów znaków i znaków?
Odpowiedzi:
Jeśli łańcuch zawiera dokładnie jeden znak, najprostszym sposobem na konwersję go na znak jest prawdopodobnie wywołanie charAt
metody:
char c = s.charAt(0);
Możesz użyć funkcji .charAt (int) z napisami, aby pobrać wartość char w dowolnym indeksie. Jeśli chcesz przekonwertować String na tablicę char, spróbuj wywołać .toCharArray () na 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']
możesz użyć tej sztuczki:
String s = "p";
char c = s.charAt(0);
"123"
się '1'
, że to, co jesteś po?
Jeśli ciąg ma 1 znak, po prostu weź ten znak . Jeśli łańcuch nie ma długości 1 znaku, nie można go parsować w znak.
String string = "This is Yasir Shabbir ";
for(char ch : string.toCharArray()){
}
lub Jeśli chcesz indywidualnie, możesz jako
char ch = string.charAt(1);
org.apache.commons.lang.StringEscapeUtils . (un) Metody EscapeJava są prawdopodobnie takie, jak chcesz
Odpowiedź od brainzzy not mine:
Najprostszym sposobem konwersji String
na a char
jest użycie 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
Oto pełny skrypt:
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();
}
}
Mogę być trochę spóźniony, ale uznałem to za przydatne, rozumiem kadencję jako Ciąg, a tytuł lewej kolumny jako Konwertuj na. :-)
AKTUALIZACJA: W końcu odzyskałem hasło, zaktualizowałem tekst do skopiowania, aby inni mogli po prostu kopiować i wklejać jak zawsze, a niektórzy mogą uzyskać indeksację danych (jeśli tak się dzieje). :-) Wesołego listopadowego wąsy.
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);
to prawda? Szczerze mówiąc, nie sprawdziłem, ale jestem całkiem pewien, String
że nie ma parseFloat
metody, a nawet jeśli tak, nie rozumiem, dlaczego to właśnie chciałbyś tam zrobić.
Jeśli chcesz przeanalizować ciąg znaków do znaku, podczas gdy obiekt String reprezentuje więcej niż jeden znak, po prostu użyj następującego wyrażenia: char c = (char) Integer.parseInt (s) . Gdzie s oznacza ciąg, który chcesz przeanalizować. Większość ludzi zapomina, że znaki char reprezentują liczbę 16-bitową, a zatem mogą być częścią dowolnego wyrażenia liczbowego :)
char
jest, tak jak int
i double
. Podał nawet przykład String
„123”. a kto mówi, że nie możesz przekonwertować char
na a String
o długości większej niż jeden i odwrotnie? Wypróbuj sam z char c = 123
: String.valueOf((int) c).equals("123")
Returns true
.
int
. Na przykład musiałeś przesyłać do int
, co oznacza, że nie pracujesz z oryginałem char
, ale z int
, który w jakiś sposób odpowiada oryginałowi 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));
}
}
}
Możesz wykonać następujące czynności:
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();
Możesz po prostu użyć toCharArray()
do konwersji ciągu znaków na tablicę znaków:
Scanner s=new Scanner(System.in);
System.out.print("Enter some String:");
String str=s.nextLine();
char a[]=str.toCharArray();
Esej:
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); } }
}
Dane wyjściowe zobacz ten link: Kliknij tutaj
Dzięki :-)
Możesz użyć funkcji .charAt (int) z napisami, aby pobrać wartość char w dowolnym indeksie. Jeśli chcesz przekonwertować String na tablicę char, spróbuj wywołać .toCharArray () na String. Jeśli ciąg ma 1 znak, po prostu weź ten znak, wywołując .charAt (0) (lub .First () w C #).