上面的是C语言的代码啊,呵呵。
创新互联是一家专注网站建设、网络营销策划、小程序设计、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立10年以来,已经为数千家社区文化墙各业的企业公司提供互联网服务。现在,服务的数千家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
下面才是JAVA的,其实思路很简单。
直接让用户输入一个数:
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
得到这个数字以后,有两种方法判断这个数是几位数。
方法一:
把这个数字转为字符串,
String s = String.valueOf(num);
然后用s.length()得到这个字符串的长度,这个长度就是数字的位数了,不过前提是这个数是正数,如果是负数,可以先判断一下num是否在于0,如果小于0,那么长度就应该是5才对。
方法二:
int i = 0;
while(num!=0){
num = num / 10;
i ++;
}
最后,这个 i 就是数字的位数。
你的getnum方法 定义的时候需要返回int ,但你的方法体里面没有return,报错了
其实这个地方不用返回
public void getnum(int i) throws AAException {
if (i 0 || i 9999) {
throw new AAException();
}
if (i = 0 i = 9)
System.out.print("一位数");
else if (i = 10 i = 99)
System.out.print("两位数");
else if (i = 100 i = 999)
System.out.print("三位数");
else if (i = 1000 i = 9999)
System.out.print("四位数");
}
在调用的时候,这样写
try {
String s = stdin.nextLine();
double ii = Double.parseDouble(s);
int i = (int) ii;
a.getnum(i);
} catch (AAException e) {
System.out.println(e.toString());
}
复制以下代码:
int num = 2772;
String str = String.valueOf(num);
System.out.println(str.length());
for(char c : str.toCharArray()){
System.out.println(c);
}
扩展资料:
字符串的长度
public class Test {
public static void main(String[] args) {
int count = 0;
String regex = "[\u4e00-\u9fa5]";
String str = "今天阳光明媚不是吗.";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
System.out.print("提取出来的中文有:");
while (m.find()) {
count++;
System.out.print(m.group() + " ");
}
System.out.println();
System.out.println("汉字出现的频率:" + count);
}
}
import java.math.BigInteger;
public class Test {
//输入的整数有限制,输入的数必须在-2^63与2^63 - 1之间
public static void lengthOfInt(long l){
String s = l + "";
if(l 0)
System.out.println(s.length() - 1);
else
System.out.println(s.length());
}
//任意长度的整数
public static void lengthOfInt(BigInteger bigInt){
String s = new String(bigInt + "");
if(s.startsWith("-"))
System.out.println(s.length() - 1);
else
System.out.println(s.length());
}
public static void main(String[] args){
lengthOfInt(11000);
lengthOfInt(new BigInteger("-1100000000000000000000000000000000000000"));
}
}
首先,不论是int还是long都不能做到无限,所以只能用String,那么你第一件事就是判断输入的是不是整数,这个可以用正则表达式,然后用length方法获取长度
按照num/10 语句,不是应该显示 它是个99位数吗?java是如何判断为3位数的?
答 999/10 = 99 ; 此时num = 99 count=1;
99/10=9; 此时num = 9 count=2;
9/10=0; 此时num = 0 count=3;
一共在while循环里执行了三次, 所以判断是3位数
提示
System.out.println("它是个"+ count+"位的数!");
这里输出的是count 这个变量,表达的是次数,
不是输出num 这个数,此时num经过循环已经等于0了