Byte和String的转换

lyh7736362 2010-07-02 12:45:59
题目是这样的

从键盘读入两个字符,按照字母表的顺序排序,将前面的字符置于a,排到后面的字符置于b。请设计并实现该程序

import java.util.*;
public class Test4
{
public static void main(String args[])
{
System.out.println ("请输入第一个字符:");
Scanner temp1=new Scanner(System.in);
String a1=temp1.nextLine();
byte a=Byte.parseByte(a1);

System.out.println ("请输入第二个字符:");
Scanner temp2=new Scanner(System.in);
String b1=temp2.nextLine();
byte b=Byte.parseByte(b1);

if(a>b)
{
System.out.println ("较前的字符为"+a);
System.out.println ("较后的字符为"+b);
}
else
{
System.out.println ("较前的字符为"+b);
System.out.println ("较后的字符为"+a);
}
}
}

怎么我一打了一个字符进去以后就


请输入第一个字符:
i
Exception in thread "main" java.lang.NumberFormatException: For input string: "i"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Byte.parseByte(Byte.java:151)
at java.lang.Byte.parseByte(Byte.java:108)
at Test4.main(Test4.java:9)

Process completed.

而且之前我还试过把byte转成String,也是不行,求高手修改!
...全文
2136 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BigKing911 2010-07-02
  • 打赏
  • 举报
回复
哎。。。。以后也要学着多看api手册了。。。。
leon0098 2010-07-02
  • 打赏
  • 举报
回复
parseByte不是你这样用的,它不能转换非数字字符的,具体的用法你查下api手册吧。
dr_lou 2010-07-02
  • 打赏
  • 举报
回复
package com.xuz.csdn.worldcup.day22;

import java.util.Scanner;

public class Test4 {
public static void main(String args[]) {
System.out.println("请输入第一个字符:");
Scanner temp1 = new Scanner(System.in);
String a1 = temp1.nextLine();
char a = a1.charAt(0);

System.out.println("请输入第二个字符:");
Scanner temp2 = new Scanner(System.in);
String b1 = temp2.nextLine();
char b = b1.charAt(0);

if (a < b) {
System.out.println("较前的字符为" + a);
System.out.println("较后的字符为" + b);
} else {
System.out.println("较前的字符为" + b);
System.out.println("较后的字符为" + a);
}
}
}


而且你的判断也反了。
2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dr_lou 的回复:]
byte a=Byte.parseByte(a1);

parseByte
public static byte parseByte(String s)
throws NumberFormatException将 string 参数解析为有符号的十进制 byte。除了第一个字符可以是表示负值的 ASCII 负号 '-' ('\u002D') 之外,该字符串中的字符必须都是十进制数字。返回得到的 byte 值与以该 string 参数和基数 10 为参数的 parseByte(java.lang.String, int) 方法所返回的值一样。

参数:
s - 要解析的包含 byte 表示形式的 String
返回:
以十进制的参数表示的 byte 值
抛出:
NumberFormatException - 如果该 string 不包含一个可解析的 byte。
[/Quote]正解。
dr_lou 2010-07-02
  • 打赏
  • 举报
回复
byte a=Byte.parseByte(a1);

parseByte
public static byte parseByte(String s)
throws NumberFormatException将 string 参数解析为有符号的十进制 byte。除了第一个字符可以是表示负值的 ASCII 负号 '-' ('\u002D') 之外,该字符串中的字符必须都是十进制数字。返回得到的 byte 值与以该 string 参数和基数 10 为参数的 parseByte(java.lang.String, int) 方法所返回的值一样。

参数:
s - 要解析的包含 byte 表示形式的 String
返回:
以十进制的参数表示的 byte 值
抛出:
NumberFormatException - 如果该 string 不包含一个可解析的 byte。
zhouxingyu896 2010-07-02
  • 打赏
  • 举报
回复
关注

输入输出没这样写过

ladybirds2008 2010-07-02
  • 打赏
  • 举报
回复
genguyige 2010-07-02
  • 打赏
  • 举报
回复
我一直认为Scanner可以的 反正楼上的应该没有问题吧 我没试过哦
lookluuk 2010-07-02
  • 打赏
  • 举报
回复
Scanner temp1=new Scanner(System.in);
这个有问题吧,没有学过输入输出流??、、
BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in));
String str= stdin.readline();
然后你可以试着将str改为byte

good luck

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧