Как я могу перенести PHP preg_split на Java для особого случая десериализации значения в ADODB? - PullRequest
2 голосов
/ 29 декабря 2010

Мне нужно портировать эту функцию для десериализации значения в 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] );
        }

У меня есть библиотека для десериализации значений способом php, но мне нужна помощь по переносу через preg_split.Как бы это регулярное выражение выглядело в Java?

1 Ответ

1 голос
/ 01 апреля 2011

Эквивалентный код 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]

...