Android 将数据一分为二
Android Split data in two
我需要将数据分成两部分,例如我正在获取用户数据和手机号码,所以数据类似于 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 这样的数据
我需要分别存储包括姓名和电话号码在内的数据,并且我需要在微调器中显示姓名,因此如果用户select从微调器中获取姓名,我需要获取其对应的手机号码。我为 select 编写了名称代码..但是我没有得到相应的数字,如果有人知道请帮助。
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);
String[] parts = stat.split("~");
final String part1 = parts[0];
final String part2 = parts[1];
这会将字符串拆分为一个数组{ "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]);
}
您现在将有 2 个列表,分别是 { "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++;
}
接下来设置微调器的值,就像您在代码中所做的那样。
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);
类型 1:使用正则表达式。
拆分非单词字符
部分[i].split("[\W]{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++) {
names.add(parts[i].split("[\W]{2}")[0]);
numbers.add(parts[i].split("[\W]{2}")[1]);
}
类型 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
}
});
我需要将数据分成两部分,例如我正在获取用户数据和手机号码,所以数据类似于 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 这样的数据
我需要分别存储包括姓名和电话号码在内的数据,并且我需要在微调器中显示姓名,因此如果用户select从微调器中获取姓名,我需要获取其对应的手机号码。我为 select 编写了名称代码..但是我没有得到相应的数字,如果有人知道请帮助。
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);
String[] parts = stat.split("~");
final String part1 = parts[0];
final String part2 = parts[1];
这会将字符串拆分为一个数组{ "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]);
}
您现在将有 2 个列表,分别是 { "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++;
}
接下来设置微调器的值,就像您在代码中所做的那样。
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);
类型 1:使用正则表达式。
拆分非单词字符
部分[i].split("[\W]{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++) {
names.add(parts[i].split("[\W]{2}")[0]);
numbers.add(parts[i].split("[\W]{2}")[1]);
}
类型 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
}
});