黑马程序员技术交流社区
标题:
拆分整数部分和小数部分
[打印本页]
作者:
松鼠
时间:
2013-12-16 16:42
标题:
拆分整数部分和小数部分
我写了一个方法,把传入的数字的整数部分和小数部分分开了。 但是我感觉我写的好麻烦啊。
有没有简单的方法啊。。。
public class TestDigitCount {
public static void main(String[] args) {
int i = 5434789;
double d = 344578.976785;
digitCount(String.valueOf(i));
digitCount(String.valueOf(d));
}
public static int digitCount(String s) {
String s1 = s.replace('.', ',');
String[] ss = s1.split(",");
if(ss.length == 1) {
System.out.println(s1.length());
} else if(ss.length == 2) {
System.out.println("整数:" + ss[0].length() + "\n" + "小数:" + ss[1].length());
} else {
System.out.println("Format Error!");
}
}
}
复制代码
作者:
Knife
时间:
2013-12-16 17:08
可以先把数字转成字符串Number,然后用Number.substring(name.lastIndexOf(".")+1)获取小数部分。
Number.substring(0,name.lastindexOf("."))获取整数部分。
最后把字符串转成数值类型...
作者:
Kyle
时间:
2013-12-16 17:09
这个方法我觉得很合理,看看楼下还有没有更好的方法。
需要注意的是第9行的返回值类型应该改正为void,否则程序会出错。
作者:
風諾
时间:
2013-12-16 17:14
直接用"\\."切简单一点
作者:
侠客梦的懒猫
时间:
2013-12-16 17:23
有,如下,我们可以直接调用一个类:
double val=234.5678
String valStr=String.valueOf(val);
StringTokenizer arrStr=new StringTokenizer (valStr,".");
这样我们得到的数组就是整数部分与小数部分了
StringTokenizer是字符串分析器,分析器使用nextToken()方法一个个获取字符串,通过hasMoreTokens判断是否还有。
所以接下来,看你的了{:soso_e100:}!
作者:
城市儒侠
时间:
2013-12-16 17:25
本帖最后由 城市儒侠 于 2013-12-16 17:41 编辑
首先,你的函数并不是拆分整数和小数部分。而是计算整数和小数的长度。
其次,你的函数有点问题。返回类型应该是void。
最后,我想了一个稍微貌似简单的方法。实现你的长度计算。你可以借鉴一下:
public class TestDigitCount {
public static void main(String[] args) {
int i = 5434789;
double d = 344578.976785;
digitCount(String.valueOf(i));
digitCount(String.valueOf(d));
}
public static void digitCount(String s) {
int index = s.indexOf(".");
if(index == -1) {
System.out.println(s.length());
} else {
System.out.println("整数:" + index + "\n" + "小数:" + (s.length() - index - 1));
}
}
}
复制代码
作者:
公子-醉香
时间:
2013-12-16 17:35
import java.util.*;
public class helloworld {
public static void main(String[] args) {
Scanner in; // 定义接受键盘输入
String msg, s;
int i;
StringTokenizer st; // 定义分割字符串
System.out.println("请输入浮点数?");
String[] output = { "整数部分:", "小数部分:" };
in = new Scanner(System.in); // 键盘输入流
msg = in.nextLine(); // 返回的是一个长度的字符串
st = new StringTokenizer(msg, "."); // 字符串分隔解析类型通过“.”分割StringTokenizer
// 用来分割字符串
for (i = 0; st.hasMoreElements(); i++) { // 通过for从头到未循环
// hasMoreElements测试包含元素总数
s = st.nextToken();
System.out.println(output[i] + s);
}
}
}
复制代码
希望能够帮助到你理解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2