在 Java 中,可以使用以下代码来判断1000000以内的正整数是否为自守数:
public static boolean isSelfDefendingNumber(int num) {
// 将数字转换为字符串
String str = String.valueOf(num);
// 遍历字符串中的每个字符
for (char c : str.toCharArray()) {
// 将字符转换为数字
int digit = c - '0';
// 如果数字在字符串中出现的次数不等于数字本身,则不是自守数
if (str.length() - str.replace(String.valueOf(digit), "").length() != digit) {
return false;
}
}
return true;
}
在这段代码中,我们首先将数字转换为字符串,然后遍历字符串中的每个字符。对于每个字符,我们将它转换为数字,并使用 String 类的 replace() 方法统计在字符串中出现的次数。如果数字在字符串中出现的次数不等于数字本身,则该数字不是自守数。