天涯明月刀见闻青龙会:如何用java实现两个输入字符串的比较/??

来源:百度文库 编辑:高校问答 时间:2024/04/29 09:44:32
//本人菜鸟一个
//实现目的是:按输入的数的大小输出
//compareTo 好像没起作用,总是按输入的先后输出,不知怎么回事??

//===============================================

import java.io.*;

public class ReadTest extends Object
implements Serializable
{
public static void main(String []args) {
String First="";
String Second="";

System.out.println("请输入一个数值:");
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
First=br.readLine();
}
catch(IOException e){System.out.println("产生异常");}
//========================
System.out.println("请输入二个数值:");
try{
BufferedReader bt=new BufferedReader(new InputStreamReader(System.in));
Second=bt.readLine();
}
catch(IOException e){System.out.println("产生异常");}

//=========================
if(First.compareTo(Second)>0)
System.out.println("按从大到小输出: "+First+" - "+Second);
else
System.out.println("按从大到小输出: "+Second+" - "+First);
}
}

compareTo()方法比较的仅仅是 依次比较两个字符串的字符的十进制值的大小; (注意:依次比较)

例如:
First = 20 和 second =8 实际 20>8

compareTo()方法比较的是 2 和 8 所以 变为8比20大了

你必须把字符串转为 数字类型才能比较实际的数字大小

//===============================================

import java.io.*;

public class ReadTest extends Object
implements Serializable
{
public static void main(String []args) {
String First="";
String Second="";

System.out.println("请输入一个数值:");
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
First=br.readLine();
}
catch(IOException e){System.out.println("产生异常");}
//========================
System.out.println("请输入二个数值:");
try{
BufferedReader bt=new BufferedReader(new InputStreamReader(System.in));
Second=bt.readLine();
}
catch(IOException e){System.out.println("产生异常");}

//=========================
if(Double.parseDouble(First)>Double.parseDouble(Second)) //转为数字类型比较
System.out.println("按从大到小输出: "+First+" - "+Second);
else
System.out.println("按从大到小输出: "+Second+" - "+First);
}
}

楼上说的不对吧
compareTo方法是比较两个字符串的词典顺序
也就是在字典中的顺序,比如“abcd”在“acdb”前面
另外你应该先把字符串转变成int,然后再比较
可以用下面的方法比较两个整数
public int max(int m,int n)
{
if(m>n)
return m;
else if(n>m)
return n;
else return 0;//相等的时候返回0
}
可以用int a=Integer.parseint("20");
来把字符串20转换为整数20并赋予a