使用for循环搜索数组

时间:2014-02-08 03:35:49

标签: java

for (int i = 0; i < str.length(); i ++) // Checks every position of array
{
    arr[i] = str.charAt(i); // Ignore this, not needed

    if (arr[i] != ',' || arr[i] != '.' || arr[i] != '$') // Checks every position of array to see if any character equals a comma, decimal point, or a dollar sign
    {

        // Ignore below
        /*
        valueString = String.valueOf(value);
        numOfAsterisks = arr.length - valueString.length();

        for (int asterisk = 0; asterisk <= numOfAsterisks; asterisk ++)
        {
            System.out.print("*");
        }

        System.out.println((int)value);
        */
    }
}

在这里,我想要做的是检查一个字符数组,看看数组是否包含逗号,小数点或美元符号。如果数组不包含任何这些字符,则将执行注释掉的部分(在其中显示“忽略下面”)。我在这里遇到的唯一问题是,因为if (arr[i] != ',' || arr[i] != '.' || arr[i] != '$')位于外部for循环下,所以注释掉的部分会被执行多次。我需要代码只执行一次,但仍然检查数组的每个位置。

1 个答案:

答案 0 :(得分:3)

如果我理解你的问题,你真正想要的是这样的:

boolean found = false;
for(int i = 0; i < str.length; i++) {
    char c = str.charAt(i);
    if(c == ',' || c == '.' || c == '$') {
        found = true;
        break;
    }
}
if(!found) {
    /* Your commented-out code */
}

请注意,这也可以这样表达:

skip: {
    for(int i = 0; i < str.length; i++) {
        char c = str.charAt(i);
        if(c == ',' || c == '.' || c == '$')
            break skip;
    }
    /* Your commented out code goes here. */
}

为自己选择您更喜欢的。 :)