ramigani manjunath:
Tengo una cadena que contiene un par de valores de atributos. Al verificar si la cadena contiene valores de atributos específicos o no mediante el uso de algunas expresiones regulares sencilla, la función partidos siempre está volviendo valor falso.
Ahora necesito el comportamiento similar,
- Si cadena contiene
\"import\" :
Entonces necesitoisExportSet
que desea establecer como verdad. - Si cadena contiene
\"path\" : true
Entonces necesitoisPathSet
que se establece en true.
Probé como se muestra a continuación, pero no funcionó para mí:
public class DriverClass {
public static void main(String[] args) {
String str = "\"import\" : \"static\",\"path\" : true";
boolean isExportSet = str.matches("\\*+export\\*+");
boolean isPathSet = str.matches("\\*+multipath\\s+:\\s+true");
System.out.println("Export " + isExportSet);
System.out.println("Path " + isPathSet);
}
}
Otro de los programadores:
Por favor, hágamelo saber si el código siguiente a cumplir la deifinition problema.
static String str = "\"import\" : \"static\",\"path\" : true";
static void test(String str) {
Map<String, String> map = new HashMap<String, String>();
String[] parts = str.split("(:|,)");
for (int i = 0; i < parts.length - 1; i+=2) {
map.put(getUnquotedStr(parts[i]), getUnquotedStr(parts[i+1]));
}
System.out.println(map.size() + " entries: " + map); // 2 entries: {path=true, import=static}
boolean isExportSet = "".equals(map.get("import"));
boolean isPathSet = "true".equals(map.get("path"));
System.out.println(isExportSet + " - " + isPathSet);
}
private static String getUnquotedStr(String str) {
return str.replaceAll("\"", "").trim();
}
imprimirá la siguiente manera en la consola:
- 2 entradas: {ruta = true, importación estática =}
- falso verdadero