免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2056 | 回复: 0

[学习共享] ps第6课:单个字符对象,讲ps如何处理单个字符,含汉字 [复制链接]

论坛徽章:
0
发表于 2017-07-24 11:45 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2017-07-25 15:22 编辑

powershell中的“char”是指单个字符。它是一个unicode字符(.net用utf16),占用2个字节空间。
对我们来说他是一个字母,数字,汉字,特殊符号等。

说道字符,字符串,我认为脚本中,ps对中文处理效果最好。基于.net。
当然java也最好,可java的脚本还没出。比python,和shell好点。


char中文手册:
https://msdn.microsoft.com/zh-cn/library/system.char.aspx

-----------------------
判断【单个字符】,是否是【大写字母】就用:
[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] #支持负数
}

--------------------------------------------



例子:
http://bbs.chinaunix.net/thread-4251957-2-1.html   单个汉字问题
http://bbs.chinaunix.net/thread-4260144-1-1.html   半个汉字问题




您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP