#比较两个字符串,然后返回两个字符串的相似度
#相似度以小数的形式返回
#比较方式为两个字符串中相同的最长的字符长度比上两个字符串中较短的那个字符串的长度
def self.compare_str(str1,str2)
i = 0;
str1_a = str1.downcase.split("") #比较不区分大小写,要区分的话去掉downcase
str2_a = str2.downcase.split("") #比较不区分大小写,要区分的话去掉downcase
max_len = 0
while((i+1) <= str1_a.size)
x = i
str1_a[x..str1_a.size].each_with_index do |s, index|
if str2_a.include?(s)
j = str2_a.index(s)
len = 0
while(str1_a[i] == str2_a[j] && (i+1) <= str1_a.size)
len += 1
i += 1
j += 1
end
if len > max_len
max_len = len
end
break
else
i += 1
end
end
end
if str1_a.size > str2_a.size
unless str2_a.size == 0
return ((max_len.to_f)/(str2.length)).round(2)
else
return 0
end
else
unless str1_a.size == 0
return ((max_len.to_f)/(str1.length)).round(2)
else
return 0
end
end
end
分享到:
相关推荐
本文档旨在探讨Ruby on Rails中的字符串处理技术。在Ruby语言中,字符串可以通过多种方式创建。具体而言,字符串可以通过单引号('str')或双引号("str")来定义。这两种表示方式的主要区别在于它们对字符串内部...
render_anywhere, 将 Rails 模板呈现给任何类的字符串 render_anywhereRails,只能在控制器上下文中呈现模板。 这个小 gem 允许从任何地方调用"呈现": 模型,后台作业,rake任务,你将它的命名为。安装 gem install...
InflectorKit, 有效的Singularize和复数字符串 InflectorKit有效的Singularize和复数字符串InflectorKit端口将 Rails ActiveSupport的字符串转换功能转换为基础。在manipulate的设计api中,InflectorKit加入了
最近有个需求,需要根据一个字符串当作一个类来使用,例如: 有一个字符串 “ChinaMag”,根据这个字符串调用 类 ChinaMag下的方法。 解决办法: 1.rails可以使用 constantize方法。 代码如下: pry(main)> ...
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
Rails 的字符串枚举!! :party_popper: 范围验证存取方法更新方法入门将此行添加到您的应用程序的Gemfile中: gem 'str_enum' 将字符串列添加到您的模型中。 add_column :users , :status , :string 并使用: ...
3. ActiveSupport:提供了一系列实用的工具和扩展,如时间处理、字符串操作、日历计算等,增强了 Ruby 语言的基础功能。 4. 插件和Gem:Rails 2.3.x 支持 Gem 管理系统,允许开发者通过安装和管理第三方 Gem 来扩展...
1. **activesupport-2.1.0.gem**:ActiveSupport是Rails的一个重要库,提供了许多实用的工具和方法,如时间区处理、字符串格式化、数组和哈希操作等。它也包含了一些核心的Ruby扩展,帮助开发者编写更简洁、更具表达...
LetterAvatar 可以处理包含多个单词或特殊字符的字符串。它会提取首字母,如果字符串中有数字或特殊字符,它们会被忽略。例如,对于用户名 "jane123",它会生成 "JN" 的头像。 ## 5. 自定义字体 默认情况下,...
8. **ActiveSupport**:包含许多实用的工具类和模块,如时间戳处理、字符串处理等,它们被广泛地应用于Rails应用中。 9. **测试驱动开发(TDD)和集成测试**:Rails鼓励开发者使用Test::Unit或Rspec进行测试,确保...
在提供的“ruby-refm.chm”文件中,可能包含了Ruby语言和相关工具的参考手册,这将有助于理解Ruby的基础语法和Rails框架的使用,包括如何处理字符串和编码问题。查阅此手册,可以找到关于字符串操作、编码转换等相关...
我们使用相同的 Ruby on Rails Active 支持字符串辅助方法来简化字符串操作。 #A Jquery Plugins For Some String Helper methods like Camelize, Underscore, Dasherize, Classify, Ordinalize, ForeignKey 所有...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它遵循模型-视图-控制器(MVC)的架构模式,设计用来快速开发数据库驱动的动态网页。随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助...
简介 Ruby On Rails 框架自它提出之日...Rails 是一个真正彻底的 MVC(Model-View-Controller) 框架,Rails 清楚地将你的模型的代码与你的控制器的应用逻辑从 View 代码中分离出来。Rails 开发人员很少或者可能从未遇到
5. **ActiveSupport**:提供了一系列有用的工具和库,如时间助手、字符串操作、哈希扩展等,增强了Ruby的基础功能。 6. **Routes**:Rails的路由系统将URL映射到控制器的行动上,定义了应用的导航结构。 7. **...
3. **`named_scope`**:这个在 Rails 2.x 中广泛使用的特性已被弃用,取而代之的是 `scope`,它可以接收 Proc 对象或 SQL 字符串,使得查询更加灵活。 4. **`with_scope` 和 `with_exclusive_scope`**:这两个方法也...
标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...