如何解析字符串以获得双倍的值

问题描述:

请帮我解决下一个问题:如何解析字符串以获得双倍的值

有String模式,假设它是public final静态变量。有我们搜索的字符串。有一流的,简单的包装翻番

public class Wrapper { 

    private double value; 

    public double getValue() { 
     return value; 
    } 

    public Wrapper(double value) { 
     this.value = value; 
    } 
} 

我需要方法

public Wrapper parse(String s, int index) 

返回如果字符串指数是小数点后最多2个位数(双号包装的对象,如果有小数点在所有的)和右后数字结尾有字符串

String pattern = "money"; 
String search = "Giveme10.25moneyplease"; 

解析(搜索,6)返回新的包装(10后 例如字符串图案。 25)

在其他情况下(索引小于零,大于字符串的长度,从索引开始的子字符串根本不是数字,或者是双精度数字,但它包含超过小数点后两位数字,或者存在后数字)方法没有字符串图案必须返回不同之处仅字符串模式必须与小数点后最大2位数字和所有其他相同

String pattern = "money" 
String s = "Ihavemoney10.50" 

parse1(第一和然后双号空

而另一种方法5)返回新包装(10.50)

您可以使用DecimalFormatParsePosition沿着这样

import java.text.DecimalFormat; 
import java.text.ParsePosition; 

public class TestP { 

    public static void main(String[] args) { 


     DecimalFormat decimalFormat = new DecimalFormat("00.##'money'"); 

     String search = "Giveme10.25moneyplease"; 

     int index = 6; 
     //output 10.25 
     Number number = decimalFormat.parse(search, new ParsePosition(index)); 

    if (number != null) { 
     String s = number.toString();   
     if (s.contains(".") && s.length() > 5) { 
      number = null; 
     } 
    } 
    System.out.println(number); 

    } 

} 
+0

我很抱歉,但它的要求后十进制数必须是字符串模式右后 – 2014-09-19 21:04:07

+0

字符串“Giveme10.25litersofmilk”和指数6就必须如果字符串模式仍然是“钱”,则为空 – 2014-09-19 21:07:59

+0

@EdisonMiranda我更新了我的答案 – sol4me 2014-09-19 21:43:16