java怎么判断为正整数_java中如何判断一个数是否为正整数(多种种方式比较有意思)对时间处理也可以...

这是在贴吧看到的一个小问题.当时回了一个.后来又引来很多朋友的讨论.感觉有点启发.所以写出来分享一下

其中思路回来倒了两次

public class ddd {

public static void main(String[] args) {

double tmp, number;

Scanner one = new Scanner(System.in);

System.out.print("请输入一个正整数:");

number = one.nextDouble();

// System.out.println(number);number = 9.1

tmp = number * 2;

// System.out.println(tmp); tmp 18.2

// System.out.println((int)tmp);18

// 判断这个数是不是正整数

while (number <= 0 || tmp % 2 != 0)// 如何将9.0也当成一个正整数?????????????

{

System.out.print("您输入的数字不是正整数,请重新输入:");

number = one.nextDouble();

}

/*if (number == 2 || number == 3) {

System.out.println((int) number + "是一个素数!");

}*/

}

}

我开始认为强转一下即可,后来发现如果强转以后用会出问题(如取值范围和包装类之间自动取舍等),

所以想到了用String转换,String的强大可以做很多事.但也增加了代码量.可以使用简化版:

还加上string正则表达式,format方法 就比较简单了.不仅对整数,对时间等都可以解决一定问题.如下:

Data data = new Data();

String str=String.fromat("%te",date);

这种判断很强大的.不是吗?"%d" 就是判断是否整数

String aa= "432.34";

int a =34;

String str=String.format("%b",aa);

System.out.println(str);   //true

System.out.println("%d",a/2);

double a =34.33;

String a2=String.format("%e",a/2);

System.out.println(a2);//转为十进制

System.out.println(String.format("%s", a2));//转为字符串

要记的就是%+e,a,d这些.有兴趣可以多试一下.

会常遇到:java.util.IllegalFormatConversionException

后来又有人写了下面强的.这个真不错.我当时没想到.

if(x - (int)x < 0.0000001) //精度自己设置

整数

else

非整数

有兴趣的朋友可以来说说.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 自守是指一个正整数的平方的末尾几位等于该本身的。例如,5的平方是25,25的末尾两位是25,所以5是一个自守。 要判断一个正整数是否为自守,可以使用如下步骤: 1. 将该的平方计算出来。 2. 取出该的末尾几位(和要判断的位相同)。 3. 将取出的末尾几位与要判断进行比较,如果相等则该是自守,否则不是。 例如,如果要判断字5是否为自守,可以使用如下代码: ``` int num = 5; int square = num * num; // 计算平方 int lastTwo = square % 100; // 取出末尾两位 if (lastTwo == num) { System.out.println(num + "是自守"); } else { System.out.println(num + "不是自守"); } ``` 在上面的代码,我们先计算出5的平方是25,然后取出末尾两位25,最后将取出的末尾两位和5进行比较。因为25等于5,所以输出“5是自守”。 ### 回答2: 自守是指一个,如果它的平方包含了它本身,则称其为自守。 以Java语言实现判断一个正整数是否为自守的方法,可以按照以下步骤进行: 1. 定义一个isAutomorphicNumber方法,该方法接受一个正整数作为参,返回一个boolean值表示是否是自守。 2. 在isAutomorphicNumber方法,首先将传入的整转换为字符串类型,以便进行后续比较。 3. 计算传入整的平方,并将结果转换为字符串类型。 4. 比较平方字符串和原整字符串的后几位是否相等,可以通过使用String类的endsWith方法实现。 5. 如果平方字符串的后几位与原整字符串相等,则返回true,表示是自守;否则返回false,表示不是自守。 以下是使用Java代码实现的示例: ```java public class AutomorphicNumber { public static boolean isAutomorphicNumber(int number) { String numberStr = String.valueOf(number); String squareStr = String.valueOf(number * number); return squareStr.endsWith(numberStr); } public static void main(String[] args) { int num1 = 25; int num2 = 76; if (isAutomorphicNumber(num1)) { System.out.println(num1 + " 是自守"); } else { System.out.println(num1 + " 不是自守"); } if (isAutomorphicNumber(num2)) { System.out.println(num2 + " 是自守"); } else { System.out.println(num2 + " 不是自守"); } } } ``` 通过isAutomorphicNumber方法的测试,可以判断给定的正整数是否是自守,并将结果打印输出。输出结果将根据判断的情况显示不同的信息。 ### 回答3: 自守是指一个正整数,它的平方的末尾和它本身的末尾相等。我们可以使用Java编写一个程序来判断一个正整数是否为自守。 首先,我们需要定义一个判断一个正整数是否为自守。该函将接受一个num,表示要判断正整数。我们将num的平方作为一个字符串,然后比较字符串的最后一个字符和num的最后一个字符是否相等。如果相等,则返回true,表示该正整数是自守;如果不相等,则返回false,表示该正整数不是自守。 下面是具体的实现代码: ```java public class Main { public static boolean isAutomorphicNumber(int num) { String square = String.valueOf(num * num); char lastDigitOfNum = String.valueOf(num).charAt(String.valueOf(num).length() - 1); char lastDigitOfSquare = square.charAt(square.length() - 1); return lastDigitOfNum == lastDigitOfSquare; } public static void main(String[] args) { int num = 25; // 要判断正整数 if (isAutomorphicNumber(num)) { System.out.println(num + "是自守"); } else { System.out.println(num + "不是自守"); } } } ``` 在上面的代码,我们定义了一个isAutomorphicNumber函判断一个正整数是否为自守。然后在main函调用该函判断一个给定的正整数是否为自守。使用25作为示例,运行代码输出结果为"25是自守"。 除了25之外,还有一些其他的自守,如0、1、5、6等。我们可以通过修改num的值来判断其他正整数是否为自守
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值