有关(“”)重要性的Java程序

时间:2019-07-27 11:18:10

标签: java

正如您在下面的代码注释中看到的那样,我想知道“”在以下程序中的重要性。我尝试在没有
的情况下运行程序  ”,计数仍然保持为0,因此“”似乎很重要。我以为“”的功能是在字符串之间放置空格。这是在做什么非常感谢!

package js01;

import java.util.Scanner;

//search 1 
//user input of an alphabet and a sentence, return a count of that alphabet
public class J0306_search {
     public static void main(String[] args) {
         String str1;
         String ch;
         //must be a string type although the input will be a chracter because the user input is taken as a string 
         int count=0;
         int i;

         Scanner s=new Scanner (System.in);
         System.out.println("enter a sentence");
         str1=s.nextLine();
         System.out.println("enter an alphabet that u would like to count");
         ch=s.next();

         for (i=0;i<str1.length();i++) {

             if (ch.equals(""+str1.charAt(i))) {

                 //why is "" needed?
                 //
                 count++;
             }
         }
         System.out.println("count is:"+count);
         s.close();
     }

}

2 个答案:

答案 0 :(得分:3)

  

为什么需要“”?

str1.charAt(i)返回一个charchString。如果您在equals上使用String并传递char,它将自动装箱为Character,并且equals在类型不同时总是返回false(在正确编写的equals中。

""+str1.charAt(i)创建一个字符串,以便将String传递到equals,以便比较两个字符串以查看它们中是否包含相同的字符。 (另一种方法是String.valueOf(str1.charAt(i)),它看起来更长,但产生的字节码更有效-尽管JIT可以在热点中对其进行优化。)

答案 1 :(得分:2)

它将str1.charAt(i)转换为字符串,因此它是Character.toString(str1.charAt(i))的替代选择