2014-02-07 101 views
1

因此,如果我给了一个字符串“Cylinder/soda200/0.0054/5/10”并解析它,我会如何将这些部分只是数字,并把它们变成一个int或double?将一串数字从解析字符串的一部分变成一个int

目前我做这个分析是:

String delims="[/]+"; 
    String[] drinkParse=lineToParse.split(delims); 
+0

你想要的确切输出是什么? 200? 200,0.0054,5,10? 200/0.0054? –

+0

'int i = Integer.parseInt(str);' – Gene

+0

我希望每个数字都是分开的,所以说0.0054是一个double,而5和10是一个int –

回答

2

使用Integer.parseInt(),Double.parseDouble()等,将您的字符串作为参数传递。

例如int i = Integer.parseInt(drinkParse[3]);

请注意,如果无法根据请求解析参数,则可以抛出NumberFormatException。 (例如,“soda200”不能直接解析为int)

+0

我会试试这个,谢谢 –

2

您可以使用new Integer("22")并将其保存到一个int,以转化它。 Double也是如此。还有其他方法,我建议使用简单的Google搜索。

0

您应该使用分割功能和解析这样

Object[] values = (Object[]) var.split("/"); 
values[2]=Double.parseDouble(values[2]); 
values[3]=Integer.parseInt(values[3]); 
values[4]=Integer.parseInt(values[4]); 
System.out.println(values); 

您还可以迭代数组并检查是否字符串验证对双雷杰/ P或int,然后做相应的转换,如果你不知道职位。

0

我不知道,如果你熟悉java开发StringBuilder,但你可以更多地了解它here,你也可以看看String API here。在下面的程序示例中,我正在从您发布的字符串中读取字符,直到程序运行到“/”或除非它是字符串的末尾。所有字符都保存到StringBuilder,并在转换为String后检查它是否是数字,可以是double或integer。如果字符串中的任何字符不是数字或句点isNumber标志值设置为false,我们不打印它。如果是一段时间,我们将设为isDouble标志值为true,因为我们需要该信息以进一步转换。最后,如果所有条件都成立,我们将打印数字,并创建新的StringBuilder以开始构建新的String

public class myProject { 

    public static void main(String[] args) { 

     String str = "Cylinder/soda200/0.0054/5/10"; 
     StringBuilder sb = new StringBuilder(); 
     boolean isDouble; 
     boolean isNumber; 

     System.out.println("List of numbers:"); 
     for (int i = 0; i < str.length(); i++) { 

      if (str.charAt(i) != '/') { 
       sb.append(str.charAt(i)); 
      } 

      if (str.charAt(i) == '/' || i+1 == str.length()) { 

       String strConvert = sb.toString(); 
       isDouble = false; 
       isNumber = true; 

       for (int j = 0; j < strConvert.length(); j++) { 
        if (!Character.isDigit(strConvert.charAt(j))) { 
         if (strConvert.charAt(j) == '.') { 
          isDouble = true; 
         } else { 
          isNumber = false; 
         }       
        } 
       } 

       if (isDouble && isNumber) { 
        System.out.println(Double.parseDouble(strConvert)); 
       } else if (isNumber) { 
        System.out.println(Integer.parseInt(strConvert)); 
       } 

       sb = new StringBuilder(); 

      } 
     } 
    } 
} 

希望这会帮助你或任何其他有类似问题的人!

相关问题