Java 检查文本长度是否可以被2整除
我想检查输入文本的长度是否可以被2整除 那就好像 如果我的文本长度是3,结果将是1.5,它将显示不可除以2和 如果我的文本长度是6,结果将是3.0,它将显示可被2整除 但无论文本长度是多少,我的代码都会显示输出“不可被2整除”。 我做错了什么Java 检查文本长度是否可以被2整除,java,Java,我想检查输入文本的长度是否可以被2整除 那就好像 如果我的文本长度是3,结果将是1.5,它将显示不可除以2和 如果我的文本长度是6,结果将是3.0,它将显示可被2整除 但无论文本长度是多少,我的代码都会显示输出“不可被2整除”。 我做错了什么 import java.util.Scanner; public class Test1 { public static void main (String[]args) { String a =null;
import java.util.Scanner;
public class Test1 {
public static void main (String[]args)
{
String a =null;
int l = 0;
double result = 0.0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter your string\n");
a = scan.nextLine();
l = a.length();
result = (double)l/2.0;
System.out.println(result);
if((double)result % 2 != .0) {
System.out.println("not divisiable by 2");
}
else {
System.out.println("divisiable by 2");
}
}
}
是你的朋友,但只有整数
if (integer % divisibleBy == 0) { do stuff; }
编辑:我还发现它很好地概括了mod操作符的各种用法,并解释了为什么你的双mod不能像你期望的那样工作
编辑:还要更多地检查代码;它看起来像你除以2,然后再除以2。所以6/2=3,3是不均匀的。不知道如果使用8->8/2=4和4%2=0,代码是否可以工作 首先,length()
返回一个int
,使用整数更简单,那么为什么要将长度强制转换为double
?%
(模)运算符用于处理整数,而不是双精度;请记住,双精度数字是浮点数,所以如果您使用双精度数字,总有数字错误的空间
第二,你不需要使用太多的变量;保持简单:
a = scan.nextLine();
if(a.length() % 2 == 0)
System.out.println("Length of string is divisible by 2");
else
System.out.println("Length of string is not divisible by 2");
读(写)起来更容易,你不觉得吗
import java.util.Scanner;
public class Test1 {
public static void main (String[]args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter your string\n");
String str = scan.nextLine();
int length = str.length();
if(length % 2 !=0) {
System.out.println("not divisible by 2");
}
else {
System.out.println("divisible by 2");
}
}
}
您的代码有很多问题:
哈哈,我讨厌这些小错误。我总是这样做。只需将两者切换到%
String a =null;
int l = 0;
double result = 0.0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter your string\n");
a = scan.nextLine();
l = a.length();
//this is your problem
result = (double)l%2.0;
//this is your problem
System.out.println(result);
if((double)result % 2 != .0) {
System.out.println("not divisiable by 2");
}
else {
System.out.println("divisiable by 2");
}
检查文本的长度,然后对其进行模运算 模运算,一种检查一个数除以另一个数是否有余数的运算
yourNumber%5 == 0
其中,
yourNumber
是字符串的长度。从这里开始。可能的重复是将长度存储在l
中,然后将l
除以2,并将其存储在result
中(作为双精度),然后检查result/2
是否可被2整除。。。你被2除了两次!请提供OP的代码示例(以及将来的参考)