web-dev-qa-db-fra.com

Comment convertir/analyser de String en char en Java?

Comment analyser une valeur String en Java dans un type char

Je sais comment le faire pour int et double (par exemple, Integer.parseInt ("123")). Existe-t-il une classe pour les chaînes et les caractères?

177
Yokhen

Si votre chaîne contient exactement un caractère, le moyen le plus simple de la convertir en caractère consiste probablement à appeler la méthode charAt :

char c = s.charAt(0);
271
Mark Byers

Vous pouvez utiliser la fonction .charAt (int) avec Strings pour récupérer la valeur du caractère à 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']
64
Gaʀʀʏ

vous pouvez utiliser cette astuce:

String s = "p";

char c = s.charAt(0);
48
Genjuro

Si la chaîne est composée de 1 caractère, il suffit de prenez ce caractère . Si la chaîne ne comporte pas 1 caractère, elle ne peut pas être analysée en un caractère.

8
Vlad
 String string = "This is Yasir Shabbir ";
 for(char ch : string.toCharArray()){

 }

ou Si vous voulez individuellement, vous pouvez aussi

char ch = string.charAt(1);

org.Apache.commons.lang.StringEscapeUtils . (un) Les méthodes EscapeJava sont probablement ce que vous voulez

Réponse de brainzzy pas le mien:

https://stackoverflow.com/a/8736043/1130448

4
sinekonata

Le moyen le plus simple de convertir une String en 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();   
    }
}
3
Isabella Engineer
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));
        }
    }
}
2
user6307216

Vous pouvez simplement utiliser la 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();
1

Vous pouvez faire ce qui suit:

String str = "abcd";
char arr[] = new char[len]; // len is the length of the array
arr = str.toCharArray();
1
Santosh Kulkarni

Je suis peut-être un peu en retard, mais j’ai trouvé cela utile, j’ai compris cadena en tant que String et le titre de la colonne de gauche en tant que Convertir en. :-)

UPDATE: Alors, j'ai finalement récupéré mon mot de passe, j'ai mis à jour un texte copiable afin que d'autres puissent simplement copier et coller comme toujours, et pour d'autres, obtenir l'indexation des données (le cas échéant). :-) Bonne moustache de novembre.

 Convertion Table

double  --> Double.parseDouble(String);
float   --> Float.parseFloat(String);
long    --> Long.parseLong(String);
int     --> Integer.parseInt(String);
char    --> StringGoesHere.parseFloat(int position);
short   --> Short.parseShort(String);
byte    --> Byte.parseByte(String);
boolean --> Boolean.parseBoolean(String);
1
Hikhuj

Une manière 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 :-) 

0
Shivanandam

Vous pouvez utiliser la fonction .charAt (int) avec Strings pour récupérer la valeur du caractère à 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 est composée de 1 caractère, prenez simplement ce caractère en appelant .charAt (0) (ou .First () en C #).

0
Mayer Spitzer