大学 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 练习遇到问题(字符串)的主要内容,如果未能解决你的问题,请参考以下文章