我是java的新手,只是为了学习目的编写了一个程序。 我有两个字符串数组,我想比较两个字符串数组的长度。如果长度相等,则将每个第一个字符串数组的值与每个第二个数组的值进行比较。如果值匹配则打印该值。 无法纠正问题所在?
package com.equal.arrat;
import java.util.ArrayList;
import java.util.List;
public class ArrayEqual {
public static void main(String[] args) {
String s[] = {"anuj","kr","chaurasia"};
String s1[] = {"anuj","kr","chaurasia"};
if (s.length==s1.length)
{
System.out.println(s.length);
for (int i =0 ; i>=s.length;i++)
{
for (int j =0 ;j>=s1.length;j++)
{
System.out.println("test");
if (s[i].equals(s1[j]))
{
System.out.println("ok" + s[i]);
}
else{
System.out.println("not ok");
}
}
}
}
else{
System.out.println("Length Not Equal");
}
}
}
答案 0 :(得分:5)
使用了错误的逻辑。你的意思是<
而不是>=
for (int i =0 ; i>=s.length;i++)
应该是
for (int i =0 ; i<s.length;i++)
希望这会有所帮助。 : - )
答案 1 :(得分:3)
首先,你说i
和j
为0,然后检查for循环,如果它大于s.length
或者不是假的,那么它就不会执行。尝试
for (int i =0 ; i<s.length;i++)
{
for (int j =0 ;j<s1.length;j++)
{
答案 2 :(得分:2)
您的for
循环条件检查中存在错误。这一行 -
for (int i = 0; i >= s.length; i++)
应该更改为 -
for (int i = 0; i < s.length; i++)
同样,改变这一行 -
for (int j = 0; j >= s1.length; j++)
到此 -
for (int j = 0; j < s1.length; j++)
答案 3 :(得分:2)
你的比较器在for循环中关闭。这可能就是它无法正常工作的原因
if (s.length==s1.length)
{
System.out.println(s.length);
for (int i =0 ; i<s.length;i++)
{
for (int j =0 ;j<s1.length;j++)
{
System.out.println("test");
if (s[i].equals(s1[j]))
{
System.out.println("ok" + s[i]);
}
else{
System.out.println("not ok");
}
}
答案 4 :(得分:2)
for (int i =0 ; i>=s.length;i++)
在第一次迭代i=0
和s.length=3
以及i>=s.length
将转换为0>=3
,这是假的,因此循环不会执行。它应该是i<=s.length
答案 5 :(得分:2)
你想要比较两个字符串数组的长度。如果长度相等,那么将每个第一个字符串数组的值与每个第二个数组的值进行比较。所以你不能使用这个>=
来比较长度。< / p>
只需尝试一下
for (int i =0 ; i<s.length;i++)
{
for (int j =0 ;j<s1.length;j++)
{
答案 6 :(得分:1)
你的循环不正确。尝试
for (int i=0; i<s.length; i++)
{
for (int j=0; j<s1.length; j++)
{
答案 7 :(得分:1)
将for (int i =0 ; i>=s.length;i++)
更改为
for (int i =0 ; i<s.length;i++)
和内循环相同
因为你的第一个条件本身并没有得到满足 i = 0并且您正在检查i&gt; = s.length(在这种情况下意味着3)
所以你的for循环不会被执行