Ruby on rails 按字母顺序排列的字符串
我对Ruby是新手。我已经用Java编写了一个解决方案Ruby on rails 按字母顺序排列的字符串,ruby-on-rails,ruby,string,Ruby On Rails,Ruby,String,我对Ruby是新手。我已经用Java编写了一个解决方案 public boolean checkOrder(String input) { boolean x = false; for (int i = 0; i < input.length() - 1; i++) { if (input.charAt(i) < input.charAt(i + 1) || input.charAt(i) == input.charAt(i +
public boolean checkOrder(String input) {
boolean x = false;
for (int i = 0; i < input.length() - 1; i++) {
if (input.charAt(i) < input.charAt(i + 1) || input.charAt(i) == input.charAt(i + 1)) {
x = true;
} else {
return false;
}
}
return x;
}
我想在ruby中实现同样的功能,如何将其转换为ruby。谢谢。根据要求:
def checkOrder(input)
input.chars.sort == input.chars.to_a
end
def checkOrder(input)
x = false
(input.length-1).times do |i|
if input[i] < input[i+1] or input[i] == input[i+1]
x = true
else
return false
end
end
x
end
Sam答案的变体,以防您希望将其作为字符串方法:
class String
def sorted?
self.chars.sort == self.chars.to_a
end
end
'abc'.sorted?
'acb'.sorted?
该方法做什么?检查字符串是否按字母顺序排列。用简单的话解释该方法应该做什么?还有,你试了什么?谢谢你的回复。我想做的是将每一行Java代码映射到Ruby,这样我就可以理解了。@wali为什么需要一行Ruby呢?我懂Java,并且每当我试图将Ruby翻译成Ruby时,我都试图从web资源中学习Ruby。wali将一行一行地从一种语言翻译成另一种语言是一个坏主意。Ruby与Java有很大的不同,因此,通过这个简单的示例,您可以看到这里没有直接映射。您最好放弃Java,将语言基础知识应用到Ruby中,以了解内存、条件、循环结构,而不是像Java一样编写Ruby。或者,您可以在0中使用i..input.length-1代替input.length.times do | i |最后一行不需要显式返回,但是它也不应该从times块中返回。Sam,我认为您需要input.length-1.times,并且您的第二个返回x需要向下移动一行。self无论如何都是隐式接收器。不用客气。添加self是一个坏主意?我养成的习惯。因为像self[:foo]这样的东西,你离不开它-