如何解析长字符串中的整数

时间:2016-11-19 05:40:39

标签: java android string int

我想从android studio中的字符串中解析两个值。 我无法从web更改数据类型,因此我需要解析Intt。我从web收到的字符串是 5 am-10am。

如何从字符串“5 am-10am”获取这些值,即5和10。 在此先感谢您的帮助。

5 个答案:

答案 0 :(得分:1)

它的工作只是这种格式“Xam-Yam”。

String value="5am-10am";
value.replace("am","");
value.replace("pm","");//if your string have pm means add this line
String[] splited = value.split("-");


  //splited[0]=5
  //splited[1]=10

答案 1 :(得分:1)

这是你应该使用的技巧: -

String timeValue="5am-10am";
String[] timeArray = value.split("-");
// timeArray [0] == "5am";
// timeArray [1] == "10am";

timeArray [0].replace("am","");
// timeArray [0] == "5";// what u needed

timeArray [1].replace("am","");
// timeArray [1] == "10"; // what u needed

答案 2 :(得分:0)

因此,下面的代码逐步显示了如何解析您给出的格式。我还在步骤中添加了使用新解析的字符串作为整数,以便您可以对它们执行算术运算。希望这会有所帮助。

        `/*Get the input*/
        String input = "5am-10am"; //Get the input

        /*Separate the first number from the second number*/
        String[] values = input.split("-"); //Returns 'values[5am, 10am]'

        /*Not the best code -- but clearly shows what to do*/
        values[0] = values[0].replaceAll("am", ""); 
        values[0] = values[0].replaceAll("pm", "");
        values[1] = values[1].replaceAll("am", "");
        values[1] = values[1].replaceAll("pm", "");

        /*Allows you to now use the string as an integer*/
        int value1 = Integer.parseInt(values[0]);
        int value2 = Integer.parseInt(values[1]);

        /*To show it works*/
        int answer = value1 + value2;
        System.out.println(answer); //Outputs: '15'` 

答案 3 :(得分:0)

我将使用一些regex删除其他字符串并仅保留数字数据。示例代码如下:

public static void main(String args[]) {
    String sampleStr = "5am-10pm";
    String[] strArr = sampleStr.split("-"); // I will split first the two by '-' symbol.

    for(String strTemp : strArr) {
        strTemp = strTemp.replaceAll("\\D+",""); // I will use this regex to remove all the string leaving only numbers.
        int number = Integer.parseInt(strTemp);
        System.out.println(number);
    }

}

这样做的好处是你不需要专门删除“am”或“pm”,因为所有其他字符都将被删除,而且数字只会被删除。

答案 4 :(得分:0)

我认为这种方式可以更快。请考虑正则表达式没有验证,因此它会将值解析为“30 am-30pm”。验证分开。

new Date()