Мне нужно перенести эту функцию для неэтериализации значения в ADODB на Java.
$variables = array( ); $a = preg_split( "/(\w+)\|/", $serialized_string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE ); for( $i = 0; $i < count( $a ); $i = $i+2 ) { $variables[$a[$i]] = unserialize( $a[$i+1] ); }
У меня есть библиотека, чтобы unserialize значения путь php, но мне нужна помощь по портированию над preg_split. Что будет выглядеть это регулярное выражение в Java?
Эквивалентный код Java:
import java.util.List; import java.util.ArrayList; // Test String serialized_string = "foo|bar|coco123||cool
"; // Split the test String[] raw_results=serialized_string.split("\\|");// Trailing empty strings are removed but not internal ones // Cleansing of the results List<String> php_like_results = new ArrayList<String>(); for(String tmp : raw_results) { if (tmp.length()>0) { php_like_results.add(tmp); } } // Output results System.out.println(php_like_results);
Это даст: [foo, bar, coco123, cool]