使用.equals方法

时间:2018-09-13 15:23:46

标签: java regex string

我正在尝试使用以下几行来匹配两个字符串

int row = 1;
String index = row + ",(.*)";
String R = "1,2";
Object result = index.equals(R);

当我希望它为true时结果为false。我不能使用其他方法link .matches(),甚至不能使用索引的模式对象,因为我希望它与使用Hashmap的其他方法集成。

在地图中,键(字符串)将具有索引链接(1,2),(1,3),(2,3),...。我想从第一个数字(即1,2等)搜索它们上。

谢谢。

2 个答案:

答案 0 :(得分:3)

您无法更改String.equals()的行为。如果您坚持要获得true,请使用:

Object result = !index.equals(R);

答案 1 :(得分:0)

应该是

boolean result = R.matches(index);

boolean result = R.startsWith(row + ",");

现在HashMap没有排序键,但是有一个Map也是SortedMap,即TreeMap:

代替

Map<String, T> map = new HashMap<>();

SortedMap<String, T> map = new TreeMap<>();

"1," < "12,"一样,假设',' < '0'的标准String比较就足够了。

然后可以连续接收sub-map

String firstKey = row + ",";
String lastKey = row + "/"; // As '/' > ','

SortedMap submap = map.subMap(firstKey, lastKey);

此子地图由原始地图支持,也就是说,对其进行更改将更改地图。

应该说,这些键看起来有些虚假,也许行+ RowKey类中的另一个字段,或者Map<Integer, Map<String, T>>(首先是行映射)会更有意义。