我正忙碌着解决我在网上发现的一些问题,我觉得这应该很简单,但我真的很挣扎。
假设您有字符串'AbcDeFg'和下一个字符串'HijKgLMnn',我希望能够在字符串中找到相同的字符,因此在本例中它将是'g'。
也许我没有提供足够的信息-我正在做代码降临,我在day 3上。我只需要在第一位的帮助,这是你得到的字符串-你必须把字符分成两半,然后比较两个字符串。你基本上必须得到两者之间的共同字符。这是我目前所拥有的:
file_data = File.read('Day_3_task1.txt')
arr = file_data.split("\n")
finals = []
arr.each do |x|
len = x.length
divided_by_two = len / 2
second = x.slice!(divided_by_two..len).split('')
first = x.split('')
count = 0
(0..len).each do |z|
first.each do |y|
if y == second[count]
finals.push(y)
end
end
count += 1
end
end
finals = finals.uniq
希望这对清晰度有帮助:)
2条答案
按热度按时间6l7fqoea1#
您是否尝试过使用
String#char
方法将这两个字符串转换为数组,并找到这些数组的交集?如下所示:wfveoks02#
一种方法是将String#scan方法与正则表达式结合使用
我并不是提倡这种方法,我只是觉得有些读者可能会觉得有趣。
假设
现在形成字符串
我假设字符串只包含字母,在
str
中,字符串可以用除字母以外的任何字符分隔。我使用了下划线。当然,如果字符串可以包含下划线,就必须使用不同的分隔符。然后我们计算
需要数组#flatten,因为
正则表达式可以用 * 自由间距模式 * 编写,使其具有自文档性:
请注意,如果某个字符在
str1
中出现多次,并且在str2
中至少出现一次,则负前瞻确保只匹配str1
中的最后一个字符,以避免返回重复项。或者,可以写
会使用String#gsub的(第四种)格式,此格式采用单一参数且不使用区块,并传回枚举值。