【问题标题】:Having trouble with Java exercise for University (Strings)大学 Java 练习遇到问题(字符串)
【发布时间】:2014-04-07 05:34:39
【问题描述】:

给定两个字符串,如果其中一个字符串出现在另一个字符串的最末尾,则打印 true,忽略大小写差异(换句话说,计算不应“区分大小写”)。

好的,所以我已经确定我需要允许输入 2 个字符串。然后我假设我需要一个 if/else 语句,其中 if 检查两个字符串以查看另一个字符串的字符是否使用 IgnoreCase 出现在该字符串的末尾。如果任一字符串末尾有另一个字符串的字符,则打印 true

然后,打印 false。

我知道如何输入这两个字符串,并实现一个 if else 语句,我的问题是,我如何扫描一个字符串以查看它是否包含另一个字符串的内容?以及如何指定必须在字符串末尾找到它。 IE。

"Hiabc", "abc" -> true                                                  
"AbC", "HiaBc" -> true                                                  
"abc", "abXabc" -> true                                                 
"abc", "abXaXc" -> false 

我查看了许多在线教程以尝试找到执行此操作的语法,但我似乎找不到任何语法。

【问题讨论】:

标签: java string compare


【解决方案1】:

不确定您是否可以使用这些内置方法,但最简单的方法是调用String.endsWith(String)。不幸的是,它们没有不区分大小写的变体,因此只需将两个字符串都转换为小写(或大写,相同)。例如:

String str1Lower = str1.toLowerCase(); 
String str2Lower = str2.toLowerCase();
if (str1Lower.endsWith(str2Lower) || str2Lower.endsWith(str2Lower) {
    System.out.println ("One of the strings is the end of the other");
} else {
    System.out.println ("bummer.");
}

【讨论】:

  • 太棒了,我不知道 .endsWith 函数。这让生活变得轻松多了!谢谢你!为什么这不在任何大学 Java 教程或我们需要知道的东西的语法列表中?我今天问了导师,他说这是解决问题的完全有效的方法。到目前为止,我们已经学习了算术和布尔表达式,以及 if else,并且目前正在处理字符串,因此与其中任何一个相关的任何语法都是有效的。不期待下周的循环:(
【解决方案2】:
public static void main(String[] args) {
    // TODO Auto-generated method stub

    String s1="abc";
    String s2="zzzABC";

    s1 = s1.toUpperCase(); //remember string immutable so have to assign once again
    s2 = s2.toUpperCase();

    if(s1.endsWith(s2) || s2.endsWith(s1))
        System.out.println("one of the string appears at the very end of others");

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2021-08-23
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多