Java Android将数据一分为二

Java Android将数据一分为二,java,arrays,string,split,spinner,Java,Arrays,String,Split,Spinner,我需要将一个数据一分为二,例如,我得到一个用户的数据以及手机号码,这样数据就像Arif | | 44444~Balin | | 33333~Cavin | | 55555~Den | | 66666~这样我就可以像 //Splitting the values String[] parts = stat.split("~"); final String part1 = parts[0]; final String part2 = parts[1]; 但这将得到像Arif | 44444、Bal

我需要将一个数据一分为二,例如,我得到一个用户的数据以及手机号码,这样数据就像Arif | | 44444~Balin | | 33333~Cavin | | 55555~Den | | 66666~这样我就可以像

//Splitting the values
String[] parts = stat.split("~");
final String part1 = parts[0];
final String part2 = parts[1];
但这将得到像Arif | 44444、Balin | 33333、Cavin | 55555、Den | 66666这样的数据

我需要分别存储包括姓名和电话号码在内的数据,并且我需要在微调器中显示姓名,因此如果用户从微调器中选择姓名,我需要获取其相应的手机号码。我没有选择名称的代码。。但对于相应的号码我没有得到,如果有人知道,请帮助

ref = String.valueOf(refdetails.getString("ref", "not found"));

List<String> spinnerArray =  new ArrayList<String>();
//spinnerArray.add(ref);
spinnerArray = Arrays.asList(ref.split("~"));

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
  this, android.R.layout.simple_spinner_item, spinnerArray);

// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
ref=String.valueOf(refdetails.getString(“ref”,“未找到”));
List spinnerray=new ArrayList();
//spinnerary.add(ref);
spinnerray=Arrays.asList(ref.split(“~”);
ArrayAdapter适配器=新的ArrayAdapter(
这个,android.R.layout.simple\u微调器\u项目,微调阵列);
//指定显示选项列表时要使用的布局
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
//将适配器应用于微调器
旋转器。设置适配器(适配器);
这将把字符串拆分为一个数组
{“Arif | | 44444”、“Balin | | 33333”、“Cavin | | 55555”、“Den | | 66666”}

要获取每个的名称和编号,您可以执行更多拆分操作:

List<String> names = new ArrayList<>();
List<String> numbers = new ArrayList<>();

for(int i = 0; i < parts.length; i++) {
    names.append(parts[i].split("||")[0]);  
    numbers.append(parts[i].split("||")[1]);    
}
List name=new ArrayList();
列表编号=新的ArrayList();
对于(int i=0;i

现在您将有两个列表,
{“Arif”、“Balin”、“Cavin”、“Den”}
{“44444”、“33333”、“55555”、“66666”}

首先为微调器准备值并将所有数据添加到哈希映射

String[] parts = stat.split("~");
String[] sArray = new String[parts.length];
HashMap<String,String> sMap = new HashMap<String, String>();
int i=0;
for (String s : parts)
{
   sMap.put(s.split("|")[0],s.split("|")[1]);
   sArray[i] = s.split("|")[0];
   i++;
}

类型1:使用正则表达式

它分割非单词字符

第[i]部分。拆分(“[\W]{2}”)

String stat=“Arif | | 44444~Balin | | 33333~Cavin | | 55555~Den | | 66666~”;
String[]parts=stat.split(“~”);
列表名称=新的ArrayList();
列表编号=新的ArrayList();
对于(int i=0;i
类型2:使用子字符串

    String stat = "Arif||44444~Balin||33333~Cavin||55555~Den||66666~";
    String[] parts = stat.split("~");
    List<String> names = new ArrayList<>();
    List<String> numbers = new ArrayList<>();

    for(int i = 0; i < parts.length; i++) {         
        int found = parts[i].indexOf("||");
        names.add(parts[i].substring(0,found));         

        numbers.add(parts[i].substring(found+2,parts[i].length()));

    }


 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()   {
   @Override
   public void onItemSelected(AdapterView<?> parent, View view, int posion, long id) {

     //here you can get the position (local argument position) of corresponding numbers to the names         

      String name = names.get(position); 
      String number = number.get(position);
   }
  @Override public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub
  } 
});
String stat=“Arif | | 44444~Balin | | 33333~Cavin | | 55555~Den | | 66666~”;
String[]parts=stat.split(“~”);
列表名称=新的ArrayList();
列表编号=新的ArrayList();
对于(int i=0;i
当用户选择一个name@Jocheved我建议您创建一个
Person
或类似的类,其中包含每个人的姓名和编号。然后,您可以在此for循环中创建新的人员,并在之后引用他们。如果数据集中在一个容器中(本例中是一个类),则更容易匹配数据。我将如何获得名称的相应数字。如果用户选择一个特定名称,则可以使用position获得。i、 e位置=名称。索引(“Arif”);获取(位置)我添加选定的微调器项listener@Jocheved你有结果吗?
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                this, android.R.layout.simple_spinner_item, sArray);

         // Specify the layout to use when the list of choices appears
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         // Apply the adapter to the spinner
        spinner.setAdapter(adapter);
String name = spinner.getSelectedItem().toString();
String id = sMap.get(name);
    String stat = "Arif||44444~Balin||33333~Cavin||55555~Den||66666~";
    String[] parts = stat.split("~");
    List<String> names = new ArrayList<>();
    List<String> numbers = new ArrayList<>();

    for(int i = 0; i < parts.length; i++) {         
        names.add(parts[i].split("[\\W]{2}")[0]);          
        numbers.add(parts[i].split("[\\W]{2}")[1]);
    }
    String stat = "Arif||44444~Balin||33333~Cavin||55555~Den||66666~";
    String[] parts = stat.split("~");
    List<String> names = new ArrayList<>();
    List<String> numbers = new ArrayList<>();

    for(int i = 0; i < parts.length; i++) {         
        int found = parts[i].indexOf("||");
        names.add(parts[i].substring(0,found));         

        numbers.add(parts[i].substring(found+2,parts[i].length()));

    }


 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()   {
   @Override
   public void onItemSelected(AdapterView<?> parent, View view, int posion, long id) {

     //here you can get the position (local argument position) of corresponding numbers to the names         

      String name = names.get(position); 
      String number = number.get(position);
   }
  @Override public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub
  } 
});