ruby中中文字符串的截取
Ruby, DevNotes
ruby不支持unicode,导致中文字符串截取出现问题,想了一个比较麻烦的方法来解决这个问题,思路就是转码->截取->反向转码,只要编码选得合适就可以了,程序如下:
#File us_cutter.rb,Class USCutter powered by SawPad
require "iconv"
class USCutter
def initialize(your_charset="GBK")
@conv=Iconv.new("UTF-16",your_charset)
@reverse_conv=Iconv.new(your_charset,"UTF-16")
end
def cut(src,start,length)
p_start=start.class==Fixnum&&start>=0
p_length=length.class==Fixnum&&length>=0
return "" unless src&&p_start&&p_length
src_utf16=@conv.iconv(src)
cutted_src_utf_16=src_utf16[2*start+2,2*length]
@reverse_conv.iconv(cutted_src_utf_16)
end
end
将此class保存为"us_cutter.rb"放入ruby_install_dir/lib/ruby/1.8里面即可,其中:
- 构造函数中的唯一参数为你目前使用的编码,如"UTF-8","GBK"等
- cut函数中src为源字符串,start为起始字符位置(0-based),length为要截取的字符串长度
使用方法应该一目了然了:
u=USCutter.new("GBK")
s1="we love 中华人民共和国"
s2=u.cut(s1,0,10)
puts s1
puts s2
输出:
we love 中华人民共和国
we love 中华
分享到:
相关推荐
这份"ruby 中文文档 必备资料"压缩包包含了一份非常重要的资源——"ruby中文文档.chm",这是一份详尽的Ruby语言指南,对于学习和精通Ruby编程语言来说是不可或缺的。 首先,Ruby语言的基础知识包括变量、数据类型和...
PROGRAMMING+RUBY中文版 PROGRAMMING+RUBY中文版 PROGRAMMING+RUBY中文版
松本行弘(Matz)是日本一家开源软件公司的程序员,有15年的编程经验。在工作中,他希望有一种比 Perl 强大,比 Python 更面向对象的语言。...本教程内含多部中文ruby介绍和语法参考能作为初中级学习使用。
这个"Ruby中文教程及相关源代码"包包含了学习Ruby语言的重要资源,旨在帮助初学者和有经验的开发者深入理解Ruby的核心概念和实践技巧。 教程部分可能涵盖了以下内容: 1. **基础语法**:Ruby的基本数据类型,如...
Ruby中文文档.CHM 方便ruby or rails学习.
通过深入学习这个Ruby中文教程,你将能够掌握这门语言的基本概念和核心机制,为进一步学习Ruby on Rails或其他Ruby相关的技术打下坚实的基础。同时,实践源代码将使理论知识更加生动和实用,助你在编程世界中...
这份"ruby中文文档中心资料"包含了丰富的资源,帮助中文用户深入理解并掌握Ruby编程。 首先,"nb60_trans_old_zh_CN"可能指的是Ruby的一个版本,如NetBeans IDE 6.0的中文翻译版,NetBeans是一个流行的开源集成开发...
Ruby中文手册CHM是为中文用户准备的详尽参考资料,包含了对Ruby语言的全面解释,帮助开发者理解和掌握这一强大的工具。 1. **Ruby用户指南**: 用户指南通常会从基础开始介绍Ruby,包括变量、数据类型、控制结构...
RUBY 中文版
《ruby中文文档》.chm文件是一个包含Ruby语言中文参考文档的压缩包,通常包含关于Ruby语法、类库、方法、错误和异常等方面的详细信息。对于初学者和有经验的开发者来说,这样的文档都是宝贵的资源,可以帮助理解语言...
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp ...
《Ruby编程语言中文文档》是针对初学者和有经验的开发者提供的一份全面而详细的资源,旨在帮助读者理解和掌握Ruby编程语言。这份文档以CHM(Microsoft编写的压缩HTML帮助文件)格式呈现,方便离线查阅。Ruby是一种...
《Programming Ruby中文版第二版》是一本专注于Ruby编程语言的权威指南,对于想要深入学习和理解Ruby编程的读者来说,是一本不可多得的资源。Ruby作为一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元...
本压缩包提供的“ruby中文文档”包含了四个主要部分,对于初学者来说是一份非常实用的学习资料: 1. **Ruby用户指南**:这是学习Ruby的基础,它将引导你了解Ruby的基本语法、数据类型、控制结构、函数、类和模块等...
### Ruby中文教程知识点总结 #### 一、编程语言的发展简史 - **第一代语言**:机器语言,直接由二进制代码组成,例如 `1001101001010011`。这类语言是计算机硬件可以直接识别的语言,但由于其高度复杂且难以记忆,...
Ruby的中文文档,如“ruby中文文档.chm”,是学习和理解这一语言的重要资源。这份文档通常会包含以下关键知识点: 1. **基础语法**:Ruby的基础语法包括变量(本地变量、实例变量、类变量和全局变量)、常量、...
这个"Ruby中文教程(带例子代码)"是一个非常适合初学者入门的学习资源,它以中文讲解,降低了学习门槛,同时提供了丰富的实例代码,使理论知识与实践操作相结合。 首先,我们来看“Ruby语言入门教程v1.0.pdf”。这...
Ruby是一种功能强大的面向对象的脚本语言,她可以使您方便快捷地进行面向对象编程.Ruby使文本处理和系统管理变得简单,与Perl非常相似.一句话:简单明了,扩展性强,移植性好. Ruby的几大亮点: 语法简单 垃圾回收 ...
这份"Ruby中文参考手册"针对的是Ruby 1.8.1版本,虽然现在Ruby已经发展到更高级的版本,如3.x,但1.8.1仍然是许多开发者学习和工作中不可或缺的参考资料。这份手册包含了对Ruby语言的全面解释,包括函数、对象和接口...
张开川编写的“Ruby中文教程”是一个针对初学者的指南,旨在帮助新接触Ruby的人快速理解和掌握这门语言的基础知识。 在学习Ruby之前,了解面向对象编程(Object-Oriented Programming, OOP)的概念是十分重要的。...