簡體   English   中英

Java的toCharArray()的PHP等效項

[英]PHP equivalent for Java's toCharArray()

在Java中,我使用toCharArray()將字符串轉換為chars數組,如下所示:

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

結果將是:

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

如果您注意到第一個項目是換行,而第二個\\ n不被視為換行,因為雙反斜杠被視為一個新行。

此外,它還會處理\\ u0061之類的unicode表示形式

PHP是否有任何等效功能?

使用str_split() :這將返回一個字符數組。

例:

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

在php中,您可以簡單地使用類似於數組的字符串:

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

它不是數組,但是您可以使用數組訪問。 所以沒有理由使用toCharArray

好吧,經過一番研究,我偶然發現了這一點。

第一: 此鏈接告訴我們:

字符串是一系列字符,其中一個字符與一個字節相同。 這意味着PHP僅支持256個字符的集合,因此不提供本機Unicode支持。 查看字符串類型的詳細信息。

我們在詳細信息部分了解到:

鑒於PHP並未規定字符串的特定編碼,因此人們可能會想知道字符串文字是如何編碼的。 例如,字符串“á”等效於“ \\ xE1”(ISO-8859-1),“ \\ xC3 \\ xA1”(UTF-8,C形式),“ \\ x61 \\ xCC \\ x81”(UTF-8 ,D形式)或其他任何可能的表示形式? 答案是,字符串將以腳本文件中編碼的任何方式進行編碼。

哎喲。

此外,在本節的前面,我們還了解到:

字符串可以組成的值沒有限制

最終的含義是,沒有Java的.toCharArray()嚴格等同。 節省用於在UTF-16(!)中編寫PHP腳本的操作,但是即使那樣,分割字符串仍將返回字節。

似乎最想要的是使用mb_convert_encoding更改為UTF-16,然后使用mb_split

使用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
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM