powershell中的“char”是指单个字符。它是一个unicode字符(.net用utf16),占用2个字节空间。
对我们来说他是一个字母,数字,汉字,特殊符号等。说道字符,字符串,我认为脚本中,ps对中文处理效果最好。基于.net。
当然java也最好,可java的脚本还没出。比python,和shell好点。
char中文手册:
https://docs.microsoft.com/zh-cn/dotnet/api/system.char?redirectedfrom=MSDN&view=netframework-4.7.2
-----------------------
判断【单个字符】,是否是【大写字母】就用:
[system.char]::IsUpper(Char)
或
[system.char]::IsUpper(String,Int32)
-----------------------
判断【单个字符】,是否是【小写字母】就用:
[system.char]::IsLower(Char)
或
[system.char]::IsLower(String,Int32)
-----------------------
判断【单个字符】,是否是【字母】就用:
[system.char]::IsLetter(Char)
或
[system.char]::IsLetter(String,Int32)
-----------------------
判断【单个字符】,是否是【数字】就用:
[system.char]::IsDigit(Char)
或
[system.char]::IsDigit(String,Int32)
-----------------------
判断【单个字符】,是否是【字母或数字】就用:
[system.char]::IsLetterOrDigit(Char)
或
[system.char]::IsLetterOrDigit(String,Int32)
-----------------------
判断【单个字符】,是否是【标点符号】就用:
[system.char]::IsPunctuation(Char)
或
[system.char]::IsPunctuation(String,Int32)
-----------------------
判断【单个字符】,是否是【分隔符】就用:
[system.char]::IsSeparator(Char)
或
[system.char]::IsSeparator(String,Int32)
-----------------------
判断【单个字符】,是否是【空格】就用:
[system.char]::IsWhiteSpace(Char)
或
[system.char]::IsWhiteSpace(String,Int32)
-----------------------
判断【单个字符】,是否是【特殊符号】就用:
[system.char]::IsSymbol(Char)
或
[system.char]::IsSymbol(String,Int32)
-----------------------
判断【单个字符】,是否是【控制符号】就用:
[system.char]::IsControl(Char)
或
[system.char]::IsControl(String,Int32)
--------------------------------------------
[int][char]$a = '№'
if ($a -ge 0x4e00 -and $a -le 0x9fa5) #判断汉字
{
Write-Host '是汉字'
}
--------------------------------------------
[char]$a = '№'
[system.char]::GetUnicodeCategory($a) #判断这个字符属于哪个类别
#返回 OtherSymbol
--------------------------------------------
问:for和foreach如何互换?
答:
foreach ($i in 0..16) {$i}for($i=0;$i -lt 17;$i++) {$i}
----------------------------------------------
问:如何把字符串,切割成字符?
答:
$行 = 'abcd汉字efg'
foreach ($行中提取单个字符的办法1 in $行.GetEnumerator())
{
$行中提取单个字符的办法1
}
------------
foreach ($行中提取单个字符的办法2 in $行.ToCharArray())
{
$行中提取单个字符的办法2
}
-----------
for ($i = 0;$i -lt $行.length;$i++)
{
$行.chars($i) #不支持负数
}
-----------
for ($i = 0;$i -lt $行.length;$i++)
{
$行[$i] #支持负数
}
对我们来说他是一个字母,数字,汉字,特殊符号等。说道字符,字符串,我认为脚本中,ps对中文处理效果最好。基于.net。
当然java也最好,可java的脚本还没出。比python,和shell好点。
char中文手册:
https://docs.microsoft.com/zh-cn/dotnet/api/system.char?redirectedfrom=MSDN&view=netframework-4.7.2
-----------------------
判断【单个字符】,是否是【大写字母】就用:
[system.char]::IsUpper(Char)
或
[system.char]::IsUpper(String,Int32)
-----------------------
判断【单个字符】,是否是【小写字母】就用:
[system.char]::IsLower(Char)
或
[system.char]::IsLower(String,Int32)
-----------------------
判断【单个字符】,是否是【字母】就用:
[system.char]::IsLetter(Char)
或
[system.char]::IsLetter(String,Int32)
-----------------------
判断【单个字符】,是否是【数字】就用:
[system.char]::IsDigit(Char)
或
[system.char]::IsDigit(String,Int32)
-----------------------
判断【单个字符】,是否是【字母或数字】就用:
[system.char]::IsLetterOrDigit(Char)
或
[system.char]::IsLetterOrDigit(String,Int32)
-----------------------
判断【单个字符】,是否是【标点符号】就用:
[system.char]::IsPunctuation(Char)
或
[system.char]::IsPunctuation(String,Int32)
-----------------------
判断【单个字符】,是否是【分隔符】就用:
[system.char]::IsSeparator(Char)
或
[system.char]::IsSeparator(String,Int32)
-----------------------
判断【单个字符】,是否是【空格】就用:
[system.char]::IsWhiteSpace(Char)
或
[system.char]::IsWhiteSpace(String,Int32)
-----------------------
判断【单个字符】,是否是【特殊符号】就用:
[system.char]::IsSymbol(Char)
或
[system.char]::IsSymbol(String,Int32)
-----------------------
判断【单个字符】,是否是【控制符号】就用:
[system.char]::IsControl(Char)
或
[system.char]::IsControl(String,Int32)
--------------------------------------------
[int][char]$a = '№'
if ($a -ge 0x4e00 -and $a -le 0x9fa5) #判断汉字
{
Write-Host '是汉字'
}
--------------------------------------------
[char]$a = '№'
[system.char]::GetUnicodeCategory($a) #判断这个字符属于哪个类别
#返回 OtherSymbol
--------------------------------------------
问:for和foreach如何互换?
答:
foreach ($i in 0..16) {$i}for($i=0;$i -lt 17;$i++) {$i}
----------------------------------------------
问:如何把字符串,切割成字符?
答:
$行 = 'abcd汉字efg'
foreach ($行中提取单个字符的办法1 in $行.GetEnumerator())
{
$行中提取单个字符的办法1
}
------------
foreach ($行中提取单个字符的办法2 in $行.ToCharArray())
{
$行中提取单个字符的办法2
}
-----------
for ($i = 0;$i -lt $行.length;$i++)
{
$行.chars($i) #不支持负数
}
-----------
for ($i = 0;$i -lt $行.length;$i++)
{
$行[$i] #支持负数
}