/* 程序问题注释开始
-
程序的版权和版本声明部分
-
Copyright © 2020,湖南工程职业技术学院信息工程学院学生
-
文件名称: 蓝桥杯赛题
-
作 者: 李 斌
-
完成日期: 2020 年 04 月 12日
-
对任务及求解方法的描述部分
-
问题描述
编程实现两个字符串s1和s2的字典序比较。(保证每一个字符串不是另一个的前缀,且长度在100以内)。若s1和s2相等,输出0;若它们不相等,则指出其第一个不同字符的ASCII码的差值:如果s1>s2,则差值为正;如果s1<s2,则差值为负。 -
样例输入
java basic -
样例输出
8 -
程序问题注释结束
*/
//2020.04.12 08.49
package 比较字符串;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in=new Scanner(System.in);
//用户请输入两个字符串
String str1=in.next();
String str2=in.next();
//判断字符串是否相等
if(str1.equals(str2))
{
//相等反回0
System.out.println(0);
}
//字符串长度是否相等
else if(str1.length()==str2.length())
{
//一一比较
for(int i=0;i<str1.length();i++)
{
//判断每一位是否相等
if(str1.charAt(i)==str2.charAt(i))
{
continue;
}
else
{
//不相等输出ASCII表差并结束循环
System.out.println(str1.charAt(i)-str2.charAt(i));
break;
}
}
}
//长度不相等
else
{
//保存str1和str2
String str3=str1;
String str4=str2;
//判断存储长度小str3,长度大str4
if(str1.length()>str2.length())
{
str3=str2;
str4=str1;
}
int i;
for(i=0;i<str3.length();i++)
{
//当前位是否相等
if(str1.charAt(i)==str2.charAt(i))
{
continue;
}
else
{
//输出字符差
System.out.println(str1.charAt(i)-str2.charAt(i));
break;
}
}
//长度大字符串当前位ASCII差值
if(i==str3.length())
{
//字符在A-Z之间
if(str4.charAt(str3.length())>='A'&&str4.charAt(str3.length())<='Z')
{
//输出ASCII排列顺序
System.out.println(str4.charAt(str3.length())-'A'+1);
}
//字符在a-z之间
else
{
//输出ASCII排列顺序
System.out.println(str4.charAt(str3.length())-'a'+1);
}
}
}
}
}
运行结果: