2013-04-20 84 views
0

我知道这个问题已被问无数次..但我似乎无法得到它的工作。问题是,一个字符串中的Java子串

  1. 一切即使转换为小写当输入 “计算机”和“比较”不工作了。
  2. 如果字符串是一个句子(我添加一个空格),它本质上跳过串码和“不在字符串”说..

帮助表示赞赏。 谢谢!

Scanner in=new Scanner(System.in); 
System.out.println("\fEnter the main string:"); 

String GivenString=in.next(); 
System.out.println("Enter the substring :"); 

String SubString=in.next(); 

GivenString.toLowerCase(); 
SubString.toLowerCase(); 

if(GivenString.indexOf(SubString)!=-1) 
{ 
    System.out.println("Substring is in the given string."); 
} 
else 
{ 
    System.out.println("Substring is not in the given string."); 
} 
+2

请使用正确的命名约定。它使代码更易于阅读。 – syb0rg 2013-04-20 19:55:21

+0

谢谢@ syb0rg。马上改变它们。 – 2013-04-20 19:57:33

回答

7

String s为不可变的,toLowerCase()返回一个新的String对象。这些行:

GivenString.toLowerCase(); 
SubString.toLowerCase(); 

...不修改GivenStringSubString值。

您将需要修改它们到:

GivenString = GivenString.toLowerCase(); 
SubString = SubString.toLowerCase(); 
+0

另外,请注意,通过Java中的约定(与C#中的其他语言不同),变量名称以小写字母开头,这将区分它们与类名。 – 2013-04-20 19:57:00

+0

谢谢@Maroun和fd! – 2013-04-20 19:57:59

+2

@AC其实你应该感谢fd :) – Maroun 2013-04-20 19:58:45

相关问题