Come posso analizzare un String
valore in un char
tipo, in Java?
So come farlo per int e raddoppiare (per esempio Integer.parseInt("123")
). C'è una classe per archi e chars?
Come posso analizzare un String
valore in un char
tipo, in Java?
So come farlo per int e raddoppiare (per esempio Integer.parseInt("123")
). C'è una classe per archi e chars?
Risposte:
Se la tua stringa contiene esattamente un carattere, il modo più semplice per convertirlo in un carattere è probabilmente chiamare il charAt
metodo:
char c = s.charAt(0);
È possibile utilizzare la funzione .charAt (int) con Strings per recuperare il valore char in qualsiasi indice. Se si desidera convertire la stringa in un array di caratteri, provare a chiamare .toCharArray () sulla stringa.
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']
puoi usare questo trucco:
String s = "p";
char c = s.charAt(0);
"123"
in '1'
, è quello che stai cercando?
Se la stringa è lunga 1 carattere, basta prendere quel carattere . Se la stringa non è lunga 1 carattere, non può essere analizzata in un carattere.
String string = "This is Yasir Shabbir ";
for(char ch : string.toCharArray()){
}
o Se vuoi individualmente, allora puoi
char ch = string.charAt(1);
org.apache.commons.lang.StringEscapeUtils . (un) I metodi EscapeJava sono probaby quello che vuoi
Risposta di brainzzy non mia:
Il modo più semplice per convertire un String
in un char
sta usando 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
Ecco uno script completo:
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();
}
}
Potrei essere un po 'in ritardo, ma l'ho trovato utile, capisco la cadena come String e il titolo della colonna di sinistra come Converti in. :-)
AGGIORNAMENTO: Quindi, ho finalmente recuperato la mia password, ho aggiornato con testo copiabile in modo che altri possano semplicemente copiare e incollare come sempre, e per alcuni altri che possono ottenere l'indicizzazione dei dati (se lo fa). :-) Buon novembre Baffi.
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);
sia corretto? Onestamente non ho controllato, ma sono abbastanza sicuro String
che non abbia un parseFloat
metodo, e anche se lo fa, non riesco a capire perché sarebbe quello che avresti cercato di fare lì.
Se vuoi analizzare una stringa in un carattere, mentre l'oggetto String rappresenta più di un carattere, devi semplicemente usare la seguente espressione: char c = (char) Integer.parseInt (s) . Dove s è uguale alla stringa che si desidera analizzare. Molte persone dimenticano che i caratteri rappresentano un numero a 16 bit e quindi possono far parte di qualsiasi espressione numerica :)
char
è, proprio come int
e double
. Ha anche dato l'esempio String
"123". e chi dice che non puoi convertire a char
in a String
con una lunghezza maggiore di uno e viceversa? Provalo tu stesso con char c = 123
: String.valueOf((int) c).equals("123")
ritorni true
.
int
. Per il vostro esempio, avevi bisogno di getto a int
, il che significa che si sta non funziona con l'originale char
, ma con una int
, che sembra corrispondere in qualche modo a quello originale 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));
}
}
}
Puoi fare quanto segue:
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();
Puoi semplicemente usare il toCharArray()
per convertire una stringa in array di caratteri:
Scanner s=new Scanner(System.in);
System.out.print("Enter some String:");
String str=s.nextLine();
char a[]=str.toCharArray();
Un modo di saggio:
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); } }
}
Per Output vedi questo link: clicca qui
Grazie :-)
È possibile utilizzare la funzione .charAt (int) con Strings per recuperare il valore char in qualsiasi indice. Se si desidera convertire la stringa in un array di caratteri, provare a chiamare .toCharArray () sulla stringa. Se la stringa ha una lunghezza di 1 carattere, basta prendere quel carattere chiamando .charAt (0) (o .First () in C #).