Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较字符串方法_Java_String - Fatal编程技术网

Java 比较字符串方法

Java 比较字符串方法,java,string,Java,String,我想比较字符串,但下面的代码不起作用。我猜是因为不兼容,还有其他方法吗?谢谢 public class test { public static void main(String[] args) { String str1 = "abc def ghi abc ded abc ghi"; String str2 = "ghi"; int count = 0; String array[] = str1.split(

我想比较字符串,但下面的代码不起作用。我猜是因为不兼容,还有其他方法吗?谢谢

 public class test
 {
    public static void main(String[] args)
    {
       String str1 = "abc def ghi abc ded abc ghi";
       String str2 = "ghi";
       int count = 0;

         String array[] = str1.split("\t");
         for(int i = 0; i < array.length; i++)
         {
           if(array[i].equals(str2))
           {
             count++;
             System.out.println(array[i]);  
             System.out.println(count);     
           } 

       }//for

      }//main

     }//test
公共类测试
{
公共静态void main(字符串[]args)
{
字符串str1=“abc def ghi abc ded abc ghi”;
字符串str2=“ghi”;
整数计数=0;
字符串数组[]=str1.split(“\t”);
for(int i=0;i
看起来您要在
“\t”
(选项卡)上拆分,但您的字符串是
(空格)分隔的。尝试字符串
array[]=str1.split(“”)代替。

不要使用
“\t”
,而是使用
,它就可以工作了。

“\t”
只有在使用了
“选项卡”
而不是空格时才有用。

现在试试这个

public class T
{
   public static void main(String[] args)
   {
      String str1 = "abc def ghi abc ded abc ghi";
      String str2 = "ghi";
      int count = 0;

        String array[] = str1.split(" ");
        for(int i = 0; i < array.length; i++)
        {
          if(array[i].equals(str2))
          {
            count++;
            System.out.println(array[i]);  
            System.out.println(count);     
          } 

      }//for

     }//main

    }//test
公共类T
{
公共静态void main(字符串[]args)
{
字符串str1=“abc def ghi abc ded abc ghi”;
字符串str2=“ghi”;
整数计数=0;
字符串数组[]=str1.split(“”);
for(int i=0;i
字符串包含一种方法,它有助于找出项目的发生情况。 就你而言
如果不想使用split,也可以使用StringTokenizer类。我觉得这很有用。您可以像这样为每个字符串创建一个StringTokenizer

StringTokenizer st1=新的StringTokenizer(str1,“”)

str1后面的“”指示要解析的对象。所以,如果你想用逗号、破折号、数字、字母、任何东西来解析,就把它放在那里吧

然后根据找到的令牌数创建一个数组,如下所示:

String[] array1 = new String[st1.countTokens()];
for(int i=0;i<st1.countTokens();i++)
{  
    array1[i]=st1.nextToken(); 
}
按如下方式填充数组:

String[] array1 = new String[st1.countTokens()];
for(int i=0;i<st1.countTokens();i++)
{  
    array1[i]=st1.nextToken(); 
}

for(int i=0;i除非每个单词之间都有一个制表符,否则请使用
split(“”)
,因为您希望在字符串的空白处而不是在制表符处拆分
字符串