[英]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.