如何在java中将字符串转换/解析为字符?
在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
字符串
值解析为字符
类型
我知道如何处理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
的意思,只是likeint
和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); } }
}