我想比较字符串,但以下代码不起作用。我猜这是因为不兼容,还有其他办法吗?谢谢!
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
答案 0 :(得分:4)
您似乎在"\t"
(标签)上拆分,但您的字符串" "
(空格)已分隔。请尝试字符串array[] = str1.split(" ");
。
答案 1 :(得分:1)
请勿使用 "\t"
,而是使用" "
代替 .....
"\t"
而非空格时, "tab"
才有用。
立即尝试..
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
答案 2 :(得分:1)
String包含有助于找出项目出现的方法。 在你的情况下 str1.contains(STR2)
答案 3 :(得分:1)
如果您不想使用split,也可以使用StringTokenizer类。 http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html我发现这最有用。您可以为每个字符串创建一个StringTokenizer。
StringTokenizer st1 = new StringTokenizer(str1," ");
str1之后的“”表示要解析的内容。所以,如果你想用逗号,短划线,数字,字母,任何东西进行解析,就把它放在那里!
然后根据它找到的标记数创建一个数组:
String[] array1 = new String[st1.countTokens()];
像这样填充数组:
for(int i=0;i<st1.countTokens();i++)
{
array1[i]=st1.nextToken();
}
您可以使用str2类似地执行此操作,并以此方式进行比较!正如您所问,这只是一种不同的方式。否则,将“/ t”更改为“”将与其他答案中所述的拆分一起使用。
希望这有帮助!