我想解析android studio中的一個字符串中的兩個值。 我無法從網絡更改數據類型,因此我需要解析Intt。我從網上收到的字符串是 上午5點 - 上午10點。如何從一個長字符串解析整數
如何從字符串「5 am-10am」得到這些值,即5和10。 在此先感謝您的幫助。
我想解析android studio中的一個字符串中的兩個值。 我無法從網絡更改數據類型,因此我需要解析Intt。我從網上收到的字符串是 上午5點 - 上午10點。如何從一個長字符串解析整數
如何從字符串「5 am-10am」得到這些值,即5和10。 在此先感謝您的幫助。
所以,下面的代碼顯示瞭如何一步一步來分析你給出的格式。我還在步驟中添加了使用新分析的字符串作爲整數,以便您可以對它們執行算術運算。希望這可以幫助。
`/*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'`
其工作只有這種格式「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
這裏是你應該使用的伎倆: -
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
我將使用一些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」,因爲所有其他角色將被刪除,數字只會留下的優點。
我認爲這種方式可以更快。請考慮正則表達式沒有驗證,所以它會將值解析爲「上午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
好一個花花公子感謝..其他的答案也可能是正確的,但我發現這個前面回答容易,並試圖在這個第一 – rishav
謝謝rishav,隨時隨地! –