Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中将字符串转换/解析为字符?_Java_String_Parsing_Char - Fatal编程技术网

如何在java中将字符串转换/解析为字符?

如何在java中将字符串转换/解析为字符?,java,string,parsing,char,Java,String,Parsing,Char,在Java中,如何将字符串值解析为字符类型 我知道如何处理int和double(例如Integer.parseInt(“123”))。 是否有字符串和字符的类?如果字符串只包含一个字符,将其转换为字符的最简单方法可能是调用以下方法: 您可以使用以下技巧: String s = "p"; char c = s.charAt(0); 可以使用带字符串的函数在任何索引处检索char值。如果要将字符串转换为字符数组,请尝试调用该字符串 String g = "line"; char c = g.ch

在Java中,如何将
字符串
值解析为
字符
类型

我知道如何处理int和double(例如
Integer.parseInt(“123”)
)。
是否有字符串和字符的类?

如果字符串只包含一个字符,将其转换为字符的最简单方法可能是调用以下方法:


您可以使用以下技巧:

String s = "p";

char c = s.charAt(0);
可以使用带字符串的函数在任何索引处检索char值。如果要将字符串转换为字符数组,请尝试调用该字符串

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']

如果字符串长度为1个字符,则只需。如果字符串长度不是1个字符,则无法将其解析为字符。

(un)EscapeJava方法可能会根据您的需要而改变

brainzzy的回答不是我的:


字符串
转换为
字符
的最简单方法是使用
charAt()

以下是完整的脚本:

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();   
    }
}
import java.util.Scanner;
课堂演示{
字符串accNo、name、fatherName、motherName;
智力年龄;
静态倍率=0.25;
静态双平衡=1000;
扫描仪扫描字符串=新扫描仪(System.in);
Scanner scanNum=新扫描仪(System.in);
无效输入()
{
系统输出打印(“账号:”);
accNo=scanString.nextLine();
系统输出打印(“名称:”);
name=scanString.nextLine();
系统输出打印(“父亲的名字:”);
父名称=scanString.nextLine();
系统输出打印(“母亲的名字:”);
motherName=scanString.nextLine();
系统输出打印(“年龄:”);
age=scanNum.nextInt();
System.out.println();
}
撤销{
系统输出打印(“多少:”;
double-draw=scanNum.nextDouble();
余额=提取余额;

如果(balance如果要将字符串解析为字符,而字符串对象表示多个字符,则只需使用以下表达式: char c=(char)Integer.parseInt(s)。 其中s等于要解析的字符串。大多数人忘记了char代表一个16位的数字,因此可以是任何数值表达式的一部分:)

import java.io.*;
ss1级
{
公共静态void main(字符串参数[])
{
字符串a=新字符串(“样本”);
System.out.println(“结果:”);
对于(int i=0;i
或者如果你想单独的话,你可以

char ch = string.charAt(1);

您可以执行以下操作:

String str = "abcd";
char arr[] = new char[len]; // len is the length of the array
arr = str.toCharArray();
可以使用带字符串的函数在任何索引处检索字符值。如果要将字符串转换为字符数组,请尝试调用该字符串。如果字符串长度为1个字符,只需通过调用.charAt(0)(或C#中的.First())获取该字符。

我发现这很有用:

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

您只需使用
toCharArray()
将字符串转换为字符数组:

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

随笔方式:

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); } } 
} 
公共类图表点{
公共静态void main(字符串[]poo){
字符串ss=“toyota”;

对于(int i=0;i)您想将字符串解析为字符数组吗?请更具体一些。可能是重复的,但我没有看到任何方法可以帮助我更改字符串,如“a”对于像“a”这样的字符,我不认为它是重复的。我只是想转换一个字母。嗯,没错,虽然我想转换字符串中的一个字符,但我想这也可以。但是这会将
“123”
转换为
'1'
,这就是你想要的吗?我不是特别想使用“123”。我只是用它作为一个例子。对于char,它将是一个与“p”不同的例子,因为char是单个字符,而不是多个字符。toCharArray()函数返回一个字符数组,以防您想将字符串拆分为字符。这可能是一个错误,但可以完成。如果您的语句说长度超过1个字符的字符串不能解析为整数,请参阅我的答案。@Adam:您的答案错了,我将在注释中解释。这是错误的。将字符串解析为数字意味着mber被转换成一个字符串,我们想得到一个数字。完全一样,从字符串中解析一个字符意味着该字符被转换成一个字符串,我们想得到该字符。OP要求的不是使用中间数字。@Vlad他要的是一个数字,因为这就是
char
的意思,只是like
int
double
。他甚至给出了
String
的例子“123”。谁说你不能将
char
转换成长度大于1的
String
,然后返回呢?用
char c=123
自己试试:
String.valueOf((int)c).等于(“123”)
返回
true
。抱歉,但问题的关键不是数字。您可以查看已接受的答案,其中明确排除了中间
int
。例如,您需要转换为
int
,这意味着您使用的不是原始
charde>,但带有一个
int
,它恰好与原始的
char
相对应。请在您的答案中添加一些解释。您可以将其缩短为一行的
String str=“abc”;char[]char\u str=str.tocharray()
为什么不竖起大拇指?这确实回答了问题,这样您就可以检查如何在其他语言中解析types@Davide可能是因为文章不能以文本的形式发布,而不能将重要信息以图像的形式发布。图像无法搜索和复制/粘贴,经常被阻止,依赖屏幕阅读器的用户无法阅读。请阅读您的文章并显示实际文本而不是屏幕截图。其他人无法从您的图像复制和粘贴。有关详细信息,谢谢。我同意@Davide问题-“为什么大拇指朝下?”。我相信这将使获得此信息的用户在将来不会对stackoverflow做出贡献,我相信不应该如此。从我的角度来看不应使用“拇指朝下”
String str = "abcd";
char arr[] = new char[len]; // len is the length of the array
arr = str.toCharArray();
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);
    Scanner s=new Scanner(System.in);
    System.out.print("Enter some String:");
    String str=s.nextLine();
    char a[]=str.toCharArray();
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); } } 
}