2016-11-19 45 views
-2

我想解析android studio中的一個字符串中的兩個值。 我無法從網絡更改數據類型,因此我需要解析Intt。我從網上收到的字符串是 上午5點 - 上午10點。如何從一個長字符串解析整數

如何從字符串「5 am-10am」得到這些值,即5和10。 在此先感謝您的幫助。

回答

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'` 
+0

好一個花花公子感謝..其他的答案也可能是正確的,但我發現這個前面回答容易,並試圖在這個第一 – rishav

+0

謝謝rishav,隨時隨地! –

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

這裏是你應該使用的伎倆: -

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 
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」,因爲所有其他角色將被刪除,數字只會留下的優點。

0

我認爲這種方式可以更快。請考慮正則表達式沒有驗證,所以它會將值解析爲「上午30點至下午30點」。驗證分開。

final String[] result = "5am-10pm".replaceAll("(\\d)[pa]m", "$1").split("-"); 
System.out.println(result[0]); // -- 5 
System.out.println(result[1]); // -- 10