假设我有string
并且我想检查它是否string
存在于另一个string
. 目前我String.contains()
用于检查,但有时会给出错误的结果:
例如:
我的主要字符串:
[A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32]
我想搜索字符串“ A1
”:
A1
我的条件返回true
,因为A11
包含A1
。但我想搜索 unique string A1
。
仅供参考,在上面的主字符串中没有A1
,所以结果应该是false
。
实际代码:
if (arrylist.contains(string) {
//do something
}
这里seatMap.getAvailable().getSeats().toString()
返回[A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32]
1. 将 的值存储seatMap.getAvailable().getSeats().toString()
到String
变量 中str
。
2.从 中取出start
并装上end
支架str
。
3.使用String.split()
方法,以split
及store
子串(A2, A3, ....
)转换成一个字符串数组availableSeats
。
4.最后,A1
通过availableSeats
使用包含检查方法的条件循环遍历数组来搜索所需的子字符串( ) String.equals()
。
这是工作代码:
String str = seatMap.getAvailable().getSeats().toString();
// So str = "[A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32]";
str.replace("[", "");
str.replace("]", "");
String[] availableSeats = str.split(", ");
for (String seat: availableSeats) {
if (seat.equals("A1"))
{
Log.d("SUCCESS", "Found A1");
// Do sometthing
// seat.status = HallScheme.SeatStatus.FREE;
break;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句