包含三的数如何用java表示

包含三的数如何用java表示

作者:William Gu发布时间:2026-02-13阅读时长:0 分钟阅读次数:4

用户关注问题

Q
Java中如何判断一个数是否包含数字3?

我想用Java编写程序来判断一个整数中是否包含数字3,应该如何实现这一功能?

A

使用字符串转换和循环判断数字是否包含3

可以将整数转换成字符串,然后通过遍历字符串的每个字符来判断是否包含字符'3'。如果找到字符'3',则说明该数字包含数字3。示例代码如下:

int number = 12345;
String strNum = String.valueOf(number);
boolean containsThree = strNum.indexOf('3') != -1;
if(containsThree) {
    System.out.println("该数字包含数字3");
} else {
    System.out.println("该数字不包含数字3");
}
Q
如何用Java代码查找集合中所有包含数字3的元素?

有一个整数集合,我想筛选出所有元素中包含数字3的数字,该如何实现?

A

使用Java Stream和过滤操作筛选包含数字3的元素

可以使用Java 8引入的Stream API来处理集合,借助字符串转换对数字进行判断。示例代码如下:

import java.util.*;
import java.util.stream.Collectors;

List<Integer> numbers = Arrays.asList(123, 45, 36, 78, 93);
List<Integer> containsThree = numbers.stream()
    .filter(num -> String.valueOf(num).contains("3"))
    .collect(Collectors.toList());

System.out.println(containsThree); // 输出:[123, 36, 93]
Q
有没有更高效的方法判断数字中包含3,而不转为字符串?

转换数字到字符串再判断虽然简单,但性能受限,是否有纯数字方法在Java中判断一个数是否包含数字3?

A

通过数字的余数和除法运算判断是否包含3

可以通过对数字进行循环取模和整除操作,判断每一位数字是否等于3。示例代码如下:

int number = 12345;
boolean containsThree = false;
int temp = Math.abs(number); // 处理负数

while(temp > 0) {
    if(temp % 10 == 3) {
        containsThree = true;
        break;
    }
    temp /= 10;
}

if(containsThree) {
    System.out.println("数字包含3");
} else {
    System.out.println("数字不包含3");
}