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
循环下,所以注释掉的部分会被执行多次。我需要代码只执行一次,但仍然检查数组的每个位置。
答案 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. */
}
为自己选择您更喜欢的。 :)