【蓝桥杯】比较字符串(Java实现)


/* 程序问题注释开始

  • 程序的版权和版本声明部分

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

}

运行结果:
运行结果

猜你喜欢

转载自blog.csdn.net/qq_46354133/article/details/105465587