Comment analyser une String
valeur en unchar
type, en Java?
Je sais comment le faire en int et en double (par exemple Integer.parseInt("123")
). Y a-t-il une classe pour les cordes et les caractères?
Comment analyser une String
valeur en unchar
type, en Java?
Je sais comment le faire en int et en double (par exemple Integer.parseInt("123")
). Y a-t-il une classe pour les cordes et les caractères?
Réponses:
Si votre chaîne contient exactement un caractère, la façon la plus simple de la convertir en caractère est probablement d'appeler la charAt
méthode:
char c = s.charAt(0);
Vous pouvez utiliser la fonction .charAt (int) avec Strings pour récupérer la valeur char à n'importe quel index. Si vous souhaitez convertir la chaîne en un tableau de caractères, essayez d'appeler .toCharArray () sur la chaîne.
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']
vous pouvez utiliser cette astuce:
String s = "p";
char c = s.charAt(0);
"123"
en '1'
, est que ce que vous êtes après?
Si la chaîne comporte 1 caractère, prenez simplement ce caractère . Si la chaîne ne comporte pas 1 caractère, elle ne peut pas être analysée en un caractère.
String string = "This is Yasir Shabbir ";
for(char ch : string.toCharArray()){
}
ou si vous voulez individuellement, vous pouvez
char ch = string.charAt(1);
org.apache.commons.lang.StringEscapeUtils . (un) Les méthodes EscapeJava sont probaby ce que vous voulez
Réponse de brainzzy not mine:
La façon la plus simple de convertir un String
en un char
consiste à utiliser 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
Voici un script complet:
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();
}
}
Je suis peut-être un peu en retard mais j'ai trouvé cela utile, comprenez cadena comme String et le titre de la colonne de gauche comme Convert to. :-)
MISE À JOUR: Donc, j'ai finalement récupéré mon mot de passe, j'ai mis à jour avec du texte copiable afin que d'autres puissent simplement copier et coller comme toujours, et pour d'autres qui peuvent obtenir l'indexation des données (si c'est le cas). :-) Joyeuse moustache de novembre.
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);
c'est correct? Honnêtement, je n'ai pas vérifié, mais je suis assez sûr qu'il String
n'y a pas de parseFloat
méthode, et même si c'est le cas, je ne vois pas pourquoi ce serait ce que vous essayez de faire là-bas.
Si vous souhaitez analyser une chaîne en un caractère, alors que l'objet chaîne représente plusieurs caractères, vous utilisez simplement l'expression suivante: char c = (char) Integer.parseInt (s) . Où s est égal à la chaîne que vous souhaitez analyser. La plupart des gens oublient que les caractères représentent un nombre de 16 bits et peuvent donc faire partie de n'importe quelle expression numérique :)
char
, tout comme int
et double
. Il a même donné l'exemple String
"123". et qui dit que vous ne pouvez pas convertir un char
en un String
avec une longueur supérieure à un, et inversement? Essayez-le vous-même avec char c = 123
: String.valueOf((int) c).equals("123")
retours true
.
int
. Pour votre exemple, vous devez effectuer une conversion vers int
, ce qui signifie que vous travaillez non pas avec l'original char
, mais avec un int
, qui correspond en quelque sorte à l'original 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));
}
}
}
Vous pouvez effectuer les opérations suivantes:
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();
Vous pouvez simplement utiliser le toCharArray()
pour convertir une chaîne en tableau de caractères:
Scanner s=new Scanner(System.in);
System.out.print("Enter some String:");
String str=s.nextLine();
char a[]=str.toCharArray();
Une façon d'essayer:
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); } }
}
Pour la sortie, voir ce lien: Cliquez ici
Merci :-)
Vous pouvez utiliser la fonction .charAt (int) avec Strings pour récupérer la valeur char à n'importe quel index. Si vous souhaitez convertir la chaîne en un tableau de caractères, essayez d'appeler .toCharArray () sur la chaîne. Si la chaîne contient 1 caractère, prenez simplement ce caractère en appelant .charAt (0) (ou .First () en C #).