2013-05-02 1 views
-1

Je suis nouveau à Ruby. J'ai écrit une solution en JavaChaîne dans l'ordre alphabétique Ruby

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; 

    } 

Je veux faire la même chose dans ruby ​​comment puis-je convertir le même en rubis. Merci.

+1

Qu'est-ce que la méthode faire? – mpora

+0

vérifier si une chaîne est dans l'ordre alphabétique ou non. – wali

+3

Expliquez, en termes simples, quelle est la méthode supposée faire? Aussi, qu'avez-vous essayé? –

Répondre

8
def checkOrder(input) 
    input.chars.sort == input.chars.to_a 
end 
+0

Merci pour la réponse. Ce que j'essaye de faire est de mapper chaque ligne de code Java à Ruby pour que je puisse comprendre. – wali

+0

@wali Pourquoi le faire quand il faut une ligne de Ruby? – squiguy

+0

Je sais java et j'essaie d'apprendre Ruby à partir de ressources web chaque fois que j'essaie de le traduire en ruby ​​je suis coincé. – wali

1

Comme demandé:

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 
+0

Alternativement, vous pouvez dire "for i in 0..input.length-1" au lieu de "input.length.times do | i |" –

+0

Ceci retourne toujours vrai. – wali

+0

Il n'est pas nécessaire que la dernière ligne soit un retour explicite, mais elle ne doit pas non plus être renvoyée depuis le bloc 'times'. –

2

Variation de la réponse de Sam, dans le cas où vous voulez jamais cela comme une méthode de chaîne:

class String 
    def sorted? 
    self.chars.sort == self.chars.to_a 
    end 
end 

'abc'.sorted? 
'acb'.sorted? 
+1

'self' est le récepteur implicite de toute façon. Pas besoin de le mentionner. –

+0

+1. L'ajout de soi est une (mauvaise?) Habitude que j'ai ramassée. En raison de choses comme 'self [: foo]', où vous ne pouvez pas faire sans ... :-) –

Questions connexes