我有一个字符串可能如下所示:
searchText = search:kind:(reports) unit.id:(("CATS (WILLIAMS)"~1) OR ("DOGS (JAMES)"~1))
我需要访问引号中可能存在的任何值,因此在这种情况下它将是:
CATS (WILLIAMS)
和DOGS (JAMES)
我不知道如何使用indexOf和subString来获取文本字符串,因为它们依赖于整数值...有人能告诉我一些如何做到这一点的例子吗?感谢
确定了基础知识,但我需要它来提取“”中的每个值,而不仅仅是第一个实例。下面接受该值然后将名称转换为id然后用id替换名称,但只有第一个实例。
String unitIdStart = "\"";
String unitIdEnd = "\"~";
int unitIdStartIndex = searchText.indexOf(unitIdStart);
if( unitIdStartIndex != -1 ) {
int unitIdEndIndex = searchText.indexOf(unitIdEnd, unitIdStartIndex);
if( unitIdEndIndex != -1 );
{
String unitName = searchText.substring(unitIdStartIndex+1, unitIdEndIndex);
Unit backToId = UnitRepository.getIdFromName(unitName);
String unitId = backToId.getId().toString();
String searchTextWithUnitId = searchText.replace(unitName, unitId);