Count number of letters(only) and the other code number of words(only)


#1

I want to make the first code count only letters, how can I do that?

#----------give the number of the characters
len = info.length
len1 = len
readFile(“wiki.txt”)
@info = info + “” + $myinfo
len = @info.length(&:length)
len2 = len - 1
len3 = len2 - len1
@words = len3.to_i
file00=File.open(“wiki.txt”,“r”)
info=""
file00.each do |line|
info=info + line
end

file00.close
$myinfo = info
@info = $myinfo

And this below should count only words, but it count ("."!"@"?";"
etc… symbols too) symbols and space.
#------------------------------gives the number of words 2 options
file1=File.open(“wiki.txt”,“r”)
len2=file1.read.split.length
@word=len2.to_s


#2

A simple, but not necessarily correct answer, would be to use
String#count
(http://ruby-doc.org/core-1.9.3/String.html#method-i-count). The crucial
point here is, that you did not explain what you consider a letter, and
because of this, I don’t know whether String#count will work for you.

For finer control, you should specify in a regexp what is a letter for
you and use String#scan to collect them. For example, if you call a
“character” everything which is in the Posix character class ‘alpha’,
you could do a

number = 0
yourstring.scan(/[[:alpha:]]/) { number+=1 }