站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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方法
}
}




↑返回目录
前一篇: 已经类名为字符串,如何进行强制类型转换。?
后一篇: 关于接口的一些疑问??? 回复都给分!!