web-dev-qa-db-ja.com

Javaで文字列から文字列に変換/解析するにはどうすればいいですか?

JavaでString値をchar型に解析する方法を教えてください。

私はそれをintやdoubleにする方法を知っています(例えばInteger.parseInt("123"))。文字列と文字のためのクラスはありますか?

185
Yokhen

文字列に正確に1文字が含まれている場合、それを文字に変換する最も簡単な方法はおそらく charAt メソッドを呼び出すことです。

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

.charAt(int) 関数をStringsと一緒に使用して、任意のインデックスのchar値を取得できます。文字列を文字配列に変換したい場合は、文字列に対して .toCharArray() を呼び出してみてください。

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ʀʀʏ

あなたはこのトリックを使うことができます:

String s = "p";

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

文字列の長さが1文字の場合は、 その文字を だけとします。文字列の長さが1文字でない場合は、文字に解析できません。

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

 }

またはあなたが個別にしたい場合は、あなたはすることができます

char ch = string.charAt(1);

org.Apache.commons.lang.StringEscapeUtils 。(un)EscapeJavaメソッドはあなたが欲しいものです。

私のものではないというブレジーからの回答:

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

4
sinekonata

Stringcharに変換する最も簡単な方法は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

これが完全なスクリプトです。

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

Stringをcharに解析したいが、Stringオブジェクトは複数の文字を表す場合は、単に次の式を使用します。char c =(char)Integer.parseInt(s)。ここで、sは解析したいStringです。ほとんどの人は、charが16ビット数を表していることを忘れているので、 any 数値式の一部になることができます:)

3
Adam Martinu
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

単にtoCharArray()を使って文字列をchar配列に変換することができます。

    Scanner s=new Scanner(System.in);
    System.out.print("Enter some String:");
    String str=s.nextLine();
    char a[]=str.toCharArray();

次のことができます。

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

もう少し遅れるかもしれませんが、これは役に立ちました。cadenaはString、そして左の列のタイトルはConvert toと理解してください。 :-)

更新:それで、私はついに私のパスワードを取り戻しました、私はコピー可能なテキストで更新しました。 :-) 11月の口ひげおめでとう。

Convertion Table

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);
1
Hikhuj

エッセイの方法:

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); } } 
} 

出力については、このリンクを参照してください: ここをクリック

ありがとう:-)

.charAt(int) 関数をStringsと一緒に使用して、任意のインデックスのchar値を取得できます。文字列を文字配列に変換したい場合は、文字列に対して .toCharArray() を呼び出してみてください。文字列の長さが1文字の場合は、.charAt(0)(またはC#では.First())を呼び出してその文字を取得してください。

0
Mayer Spitzer