我想从android studio中的字符串中解析两个值。 我无法从web更改数据类型,因此我需要解析Intt。我从web收到的字符串是 5 am-10am。
如何从字符串“5 am-10am”获取这些值,即5和10。 在此先感谢您的帮助。
答案 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()