在Java中,我使用toCharArray()将字符串转换为字符数组,如下所示:
String s1= "\nX\\nT_$\u0061\"\'";
char[] c1 = s1.toCharArray();
System.out.println((Arrays.toString(c1) ));
结果将是:
[
, X, \, n, T, _, $, a, ", ']
如果您注意到第一项是新行,而第二项则不被视为新行,因为双反斜杠被视为一行。
此外,它还会处理像\ u0061
这样的unicode表示PHP是否有任何等效功能?
答案 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
)