-2

単語の最初の文字を返す方法があるかどうか疑問に思っています。word("hey") と入力すると、文字 h だけが返されます。または、必要に応じて、文字 e を返すこともできます。個別に。ブレイク法やスキャンを考えていたのですが、うまくいかないようです。

4

4 に答える 4

2

あなたが見ることができる別の方法chrは、文字列の最初の文字を返すことです

>> 'hey'.chr # 'h'

http://www.ruby-doc.org/core-1.9.3/String.html#method-i-sliceを見て、正規表現とインデックスを組み合わせて文字列の一部を取得する方法を確認することもできます。

更新: Ruby 1.8 を使用している場合は、少しハックですが、

>> 'hey'[0] # 104
>> 'hey'[0..0] # 'h'
>> 'hey'.slice(0,1) # 'h'
于 2013-03-20T02:27:20.350 に答える
2

はい:

def first_letter(word)
  word[0]
end

または、Ruby 1.8 を使用している場合:

def first_letter(word)
  word.chars[0]
end

構文str[index]を使用して、単語の特定の文字を取得します (0 は最初の文字、1 秒など)。

于 2013-03-20T02:15:52.463 に答える
1

これは単純な実装ですがmethod_missing、異なる位置にある単語の文字を照会できるようにする DSL を作成するために使用できます。

def self.method_missing(method, *args)
  number_dictionary = {
    first: 1,
    second: 2,
    third: 3,
    fourth: 4,
    fifth: 5,
    sixth: 6,
    seventh: 7,
    eighth: 8,
    ninth: 9,
    tenth: 10
  }

  if method.to_s =~ /(.+)_letter/ && number = number_dictionary[$1.to_sym]
    puts args[0][number - 1]
  else
    super
  end
end

first_letter('hey')  # => 'h'
second_letter('hey') # => 'e'
third_letter('hey')  # => 'y'
于 2013-03-20T03:24:37.903 に答える
0

あなたの例を使用して - 「ねえ」という言葉:

h = "hey"

puts h[0]

これは を返すはずhです。

于 2013-03-20T02:29:23.587 に答える