PHP相当于Java的toCharArray()

时间:2014-03-21 17:16:56

标签: java php

在Java中,我使用toCharArray()将字符串转换为字符数组,如下所示:

String s1= "\nX\\nT_$\u0061\"\'";
char[] c1 = s1.toCharArray();
System.out.println((Arrays.toString(c1) ));

结果将是:

[                           
, X, \, n, T, _, $, a, ", ']

如果您注意到第一项是新行,而第二项则不被视为新行,因为双反斜杠被视为一行。

此外,它还会处理像\ u0061

这样的unicode表示

PHP是否有任何等效功能?

4 个答案:

答案 0 :(得分:3)

使用str_split():这会返回一个字符数组。

示例:

$s1 = "\nX\\nT_$\u0061\"\'";
$char_arr = str_split($s1);
print_r($char_arr);

答案 1 :(得分:2)

在php中,您只需使用类似于数组的字符串:

   <php
     $string ="abc";
     echo $string[0];

它不是数组,但您可以使用数组访问。因此没有理由toCharArray

答案 2 :(得分:2)

好的,经过一番研究,我偶然发现了这一点。

首先:this link告诉我们:

  

字符串是一系列字符,其中一个字符与一个字节相同。这意味着PHP仅支持256个字符集,因此不提供本机Unicode支持。查看字符串类型的详细信息。

我们在详细信息部分中了解到:

  

鉴于PHP没有规定字符串的特定编码,人们可能想知道字符串文字是如何编码的。例如,字符串“á”等同于“\ xE1”(ISO-8859-1),“\ xC3 \ xA1”(UTF-8,C形式),“\ x61 \ xCC \ x81”(UTF-8) ,D形式)或任何其他可能的表示?答案是字符串将以脚本文件中编码的任何方式进行编码。

哎哟。

此外,在本节前面我们还了解到:

  

字符串可以由

组成的值没有限制

这最终意味着,没有严格的等同于Java的.toCharArray()。保存用于编写PHP脚本... UTF-16(!),但即便如此,拆分字符串将返回字节。

似乎最接近您想要的是使用mb_convert_encoding更改为UTF-16,然后是mb_split

答案 3 :(得分:0)

使用str_split()

这是php.net示例代码

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

输出

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)