右斜杠 java chr_斜杠反斜杠,去空格\xa0,连接函数join()

\xa0 是不间断空白符  

我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。

而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。

latin1 字符集向下兼容 ASCII ( 0x20~0x7e )。通常我们见到的字符多数是 latin1 的,比如在 MySQL 数据库中。

有如下信息:

'T-shirt\xa0\xa0短袖圆领衫,体恤衫\xa0,', 'V-neck\xa0\xa0V型领\xa0sleeve\xa0\xa0袖子\xa0,',

我们如何将其中的\xa0去掉呢,试了re模块的sub方法,发现没有作用,于是又开始查阅相关资料,终于解决了该问题。方法如下:

>>> inputstring = u'\n Door:\xa0Novum \t '

>>> move = dict.fromkeys((ord(c) for c in u"\xa0\n\t"))

>>> output = inputstring.translate(move)

>>> output

' Door:Novum

另外还有一种更简单的方法,利用split方法:

>>> s

'T-shirt\xa0\xa0短袖圆领衫,体恤衫\xa0'

>>> out = "".join(s.split())

>>> out

'T-shirt短袖圆领衫,体恤衫'

可以发现利用translate方法、split()可以完美解决,并且还可以替换\t \n字符,由此又学到了新知识!

关于ord函数:

ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常。

关于fromkeys方法:

dict中的fromkeys方法目的是创建一个只有key的字典,内部利用for循环,使三个字符的asii码值成为可迭代对象(本来的整数是不可迭代的),分别对其迭代,存入字典。

关于translate方法:

Python translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。接收到move返回的表(字典),之后对字符串进行替换。

join()方法:

join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。

join()方法语法:

str.join(sequence),其中,str指定的用来连接的字符(分隔符),sequence是被连接的字符串数组,元组,列表。

返回:返回通过指定字符连接序列中元素后生成的新字符串。

例如:

>>>str = "-";

>>>seq = ("a", "b", "c"); # 字符串序列

>>>print str.join( seq );

a-b-c

可见该处用join方法真的是神来之笔,可谓绝妙!

值得注意的是,split方法中不带参数时,表示分割所有换行符、制表符、空格。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值