【发布时间】:2015-10-10 12:38:59
【问题描述】:
我正在编写用于转换信号的 java 代码。如果给定的字符串(INPUT)是:
C*12.387a0d14assc7*18.65d142a
它的翻译(输出)应该是:
C*12387:1000a0d14assc7*1865:100d142a
算法:
在字符串中的任何地方,一个星号(*)跟在一个包含小数的数字之后(在这个字符串中有两个,第一个是'*12.387',第二个是*18.65'),这个数字要变成分数,如上例 12.387 转换为 12387:1000 和 18.65 转换为 1865:100
如果十进制数是孤立的,我可以使用以下代码将其转换为分数:
double d = 12.387;
String str = Double.toString(d);
String[] fraction = str.split("\\.");
int denominator = (int)Math.pow(10, fraction[1].length());
int numerator = Integer.parseInt(fraction[0] + "" + fraction[1]);
System.out.println(numerator + ":" + denominator);
但我不知道如何将十进制数的子字符串与其包含的字符串分开。作为 Java 和编程新手,我需要帮助。感谢期待。
【问题讨论】:
标签: java regex parsing double substring