当前页面: 开发资料首页 → J2SE 专题 → String格式的问题
String格式的问题
摘要: String格式的问题
String str = -#34;2378.000.000.000.00-#34;;
我想把它格式化成
String str = -#34;2378.00-#34;;
支取小数点后面两位
DecimalFormat df = new DecimalFormat(-#34;##.##-#34;);
当我发现这个问题的时候,我要怎么做才能找到解决这个问题的函数
for(int i=0;i++;i-#60;str.length)
{
}
做个循环,分割小数点,然后再加上2位
有点罗嗦了
DecimalFormat df = new DecimalFormat(-#34;##.##-#34;);
对String类型不支持。
好像记得有个方法,是分割字符串的,可以根据字符串数组,求第一个.的索引,然后构造一个新数组,把刚才求到的索引加2,但是还要作个判断,如果第一个.后面接着也是一格.,就要去掉补0
String str = -#34;2378.000.000.000.00-#34;;
String newStr = str.substring(0,str.indexOf(-#34;.-#34;)+3);
System.out.println(newStr);
2378.000.000.000.00 本身就不是合理数据 你 非要自己处理
想想这个字串程序里怎么产生的
String inn = -#34;2378.000.000.000.00.001-#34;;
inn = inn.substring(0,inn.indexOf(-#34;.-#34;)+3);
System.out.println(inn);
StringTokenizer好像是分割的
我觉得什么样的东西都不奇怪,关键是看你的这个数据是用来干什么的
如果你做实际应用的话:
先用:spilt(-#34;.-#34;)获得将这个字符串分割后形成的字符串数组,取你要的那段,然后在用subString()方法解析要前两位
如果你做练习的话:
那么你就直接解析字符串
subString(0,7)
看下
public class FormatStr
{
public void change(String source)
{
int n=0;
while(n-#60;source.length())
{
if(source.charAt(n)==-#39;.-#39;)//判断小数点
{
n=n+3;
source=source.substring(0,n);//截断String进行格式转换
break;
}
elsen++;
}
System.out.print(source);
}
public static void main(String args[])
{
String s=new String(-#34;1204.040.0000-#34;);//可以在这里修改不同的值,带入测试
FormatStr dealstr = new FormatStr();
dealstr.change(s);//调用FormatStr类的change方法
}
}