我对这部分有疑问
我的代码:
String[] sample = {'name=NAME', 'add=ADD', 'age=AGE', 'gender=GENDER'};
for(int a = 0; a < sample.length; a++) {
if(Arrays.asList(sample).contains("name")) {
Log.d(tag, "successful");
} else {
Log.d(tag, "failed");
}
}
当我使用此代码时,它不会返回true
,但是当我使用.contains("name=NAME")
时
它返回true
。
是否有可能使用不太具体的字符串比较字符串值?
BTW,这些字符串值来自file.txt。
答案 0 :(得分:1)
如果您使用Arrays.asList(示例),您将拥有一个包含字符串“name = NAME”的列表,因此它不包含字符串“name”
你应该遍历数组(不需要创建列表)
boolean found = false;
for (String s: sample)
if (s.contains("name"))
found=true;
答案 1 :(得分:0)
.contains
方法将检查对象是否存在于ArrayList中。
在您的案例中,对象是:“name = NAME”,“add = ADD”,“age = AGE”,“gender = GENDER”,属于String
类型。所以很明显它会返回false。
对于您来说,更好的做法是创建一个名为Person
的类,其中包含名称,添加,年龄和性别等属性。然后将其对象存储在ArrayList
中,您可以检查对象是否在不使用.contains()
函数的ArrayList中。如下所示:
class Person{
String name;
String add;
int age;
String gen;
// All getters and setters methods will be here.
}
public static void main(String[] args){
Person p = new Person();
//Here you can set the properties of person using p.setXXX() methods
//Now suppose you have ArrayList of Person object named "per" then you can check
// whether Person exist in it or not using contains like below
per.contains(p) //returns true if per contains object p
//or you can check name by below code
for(Person temp:per){
if(temp.getName().equals(name)){ //returns true if name matchs with Persons name
//do something
}
}
答案 2 :(得分:0)
根据键获取值:
1)您可以使用HashMap对象
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main(String args[]) {
// create hash map
HashMap newmap = new HashMap();
// populate hash map
newmap.put("name", "abcde");
newmap.put("age", "XX");
newmap.put("Gender", "Male");
// get value of key Gender
String val=(String)newmap.get("Gender");
// check the value
System.out.println("Value for key 3 is: " + val);
}
}
2)您也可以使用Map对象
Map<String, String> map = new HashMap<String, String>();
map.put("name", "abcde");
map.put("age", "XX");
String val=(String)map.get("name");
3)你也可以使用二维数组的字符串
String data = "name=Name,age=Age";
String[] rows = data.split(",");
String[][] matrix = new String[rows.length][];
int r = 0;
for (String row : rows) {
matrix[r++] = row.split("\\=");
}
System.out.println(matrix[1][1]);