簡體   English   中英

使用.equals方法進行正則表達式字符串匹配

[英]Regex String matching using .equals Method

我正在嘗試使用以下幾行來匹配兩個字符串

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

當我希望它為true時,結果為false。我不能使用其他方法link .matches(),甚至不能使用索引的模式對象,因為我希望它與使用Hashmap的其他方法集成。

在映射鍵中,字符串(String)將具有索引鏈接(1,2),(1,3),(2,3),...。我想從第一個數字(即1,2等)搜索它們。

提前致謝。

您不能更改String.equals()行為。 如果您堅持要true使用:

Object result = !index.equals(R);

這將是

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<>();

假設標准字符串比較滿足',' < '0' ,則為"1," < "12,"

然后可以接收一行的子圖

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

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

此子圖由原始圖支持 ,也就是說,對其進行更改將更改該圖。

應該說,這些鍵看起來有些虛假,也許是RowKey類中的row +另一個字段,或者Map<Integer, Map<String, T>> (首先是行映射)會更有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM