大学 Java 练习遇到问题(字符串)

Posted

技术标签:

【中文标题】大学 Java 练习遇到问题(字符串)【英文标题】:Having trouble with Java exercise for University (Strings) 【发布时间】: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 

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

【问题讨论】:

String#startsWith, String#endsWith。您可能还需要考虑String#toLowerCase java2s.com/Tutorial/Java/0040__Data-Type/… 【参考方案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");


【讨论】:

以上是关于大学 Java 练习遇到问题(字符串)的主要内容,如果未能解决你的问题,请参考以下文章

java问题

两周以来的学习成果&遇到的问题及解决:

大学生必学练习题 - Java 语言经典50例

20165104-Java第一次结对编程练习

一个短短的自我介绍

练习Struts2遇到的问题