使用命令行参数比较Java中的两个字符串

compare two strings in java using command line arguments

本问题已经有最佳答案,请猛点这里访问。

我是Java NoOB。基本上,我试图创建一个程序,比较两个命令行参数,同时忽略大小写,并打印出两个字符串中较小的一个。以下是迄今为止我所拥有的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class CompareStrings
{
   public static void main(String[] args)
   {
      String s1 = new String(args[0]);
      String s2 = new String(args[1]);

      if ( s1.compareToIgnoreCase(s2) > 0 )
         System.out.println(s2);
      else if ( s1.compareToIgnoreCase(s2) < 0 )
         System.out.println(s1);
      else  
         System.out.println("Both strings are equal.");
   }
}

我一直在出错

1
Error: Could not find or load main class CompareString

当我试图运行它时。我做错什么了?


"Error: Could not find or load main class CompareString"

您的错误消息表示无法加载类"comparestring",但代码表示类名是comparestrings。


你的类名不对。

你的错误说

Error: Could not find or load main class CompareString

但是类名是CompareStrings,不是CompareString

使用java CompareStrings启动

阅读关于编译和启动Java程序的好教程


首先,你试图使用错误的类,应该是CompareStrings,而不是CompareString

其次,我建议使用一个不错的实用程序lib来处理来自Google代码站点的名为cliche的命令行。

第三,在调用compareToIgnoreCase之前,最好检查给定的字符串是否为空。


如果这是您仅有的代码,请将该文件另存为CompareStrings.javanot comparestring,并在命令提示符javac CompareStrings.java中保存。(要做到这一点,您需要配置Java)。然后用java CompareStrings abc cbs运行这个。这将给你一个输出为abc


根据你的错误,我猜你正在进行比较,但你的类是比较因此,要么运行Java CopyReScRy,要么将类重命名为