#android #string #split #substring
#Android #строка #разделить #подстрока
Вопрос:
У меня были сомнения при использовании soap, как разделить строку, есть ли какая-либо возможность.
//this the original data
Afternoon-99127.79;
Night-67236.27;
Morning-61876.65;
Evening-20271.42;
Housekeeping-5444.05;
I need;
Afternoon 99127.79
Night 67236
Morning 61876.65;
Evening 20271.42;
Housekeeping 5444.05;
Я разделяю, используя точку с запятой, а затем я не знаю, как использовать вложенные строки, использовать начальный и конечный индексы, я не знаю, как давать значения..На самом деле я хочу разделить до «-» и после «-«.
Ответ №1:
Попробуйте этот способ, надеюсь, это поможет вам решить вашу проблему.
String soapString = "Afternoon-99127.79;" "Night-67236.27;" "Morning-61876.65;" "Evening-20271.42;" "Housekeeping-5444.05;";
String[] splitedArray = soapString.split(";");
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String, String>>();
for (int i=0;i<splitedArray.length;i ){
HashMap<String,String> row =new HashMap<String, String>();
row.put("firstString",splitedArray[i].split("-")[0]);
row.put("secondString",splitedArray[i].split("-")[1]);
list.add(row);
}
for (HashMap<String,String> data : list){
System.out.println(data.get("firstString") " " data.get("secondString"));
}
Ответ №2:
String total_string = "Afternoon-99127.79;Night-67236.27;Morning-61876.65;Evening-20271.42;Housekeeping-5444.05;";
String[] spilted_string = total_string.split(";");
for (int i=0;i<spilted_string.length;i ){
System.out.println(spilted_string[i].split("-")[0]);
System.out.println(spilted_string[i].split("-")[1]);
}
Комментарии:
1. Большое вам спасибо, Харихаран
Ответ №3:
Разделить на ;
, что даст вам массив элементов, разделенных на -
. Затем разделите каждый элемент массива на -
Ответ №4:
public class SplitEx {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String data = "Afternoon-99127.79;Night-67236.27;Morning-61876.65;Evening-20271.42;Housekeeping-5444.05;";
String[] a = data.split(";");
String[] b = new String[a.length];
for (int i = 0 ; i < a.length; i )
{
System.out.println(a[i]);
b[i] = a[i].replace("-"," ");
}
for (int i = 0 ; i < b.length; i )
{
System.out.println(" " b[i]);
}
}
}
ВЫВОД МАССИВА B
Afternoon 99127.79
Night 67236.27
Morning 61876.65
Evening 20271.42
Housekeeping 5444.05
Ответ №5:
используйте Strin[] a = myString..split(«-«); Этот фрагмент кода разделит строку на «-» и сохранит ее в массиве строк.
Но я рекомендую вам использовать разреженный массив. Передайте свои данные с помощью SparseArray и примите их таким же образом. Это быстрее, чем Hashmap. Попробуйте.