Thanks. I'll try to start with the indexing table for each character first. Anyway do you know how to split string based on more than 1 character, for example I want to split string based on some punctuation. I have tried using tokenBasedOn, but still can not figured out how to use it for more than 1 separator.
----- Original Message ---- From: Cédrick Béler cdrick65@gmail.com To: A friendly place to get answers to even the most basic questions about Squeak. beginners@lists.squeakfoundation.org Sent: Wednesday, September 24, 2008 40:44 PM Subject: Re: [Newbies] Collection in Smalltalk
Hi,
As a start you can do:
alphabet := $a to: $z. coll indexOf: $c returns 4
to have both upper and lower case: alphabet indexOf: yourCaracter asLowercase
then you iterate on your string collection and add each result...
not sure about the $ word, but it could be once you detect the sum to be 100...
hth :)
Cédrick
but maybe you could reverse the collection so as to have ($a -> 1 ... $z -> 26)
2008/9/24 Alex Chi alex_chi99@yahoo.com:
Hi guys,
I am just beginner in Smaltalk and I have some problem with collection in smalltalk. For this problem I have to define the value of an alphabetic character based on its location in the alphabet. So 'a' and 'A' each have value 1, 'b' and 'B' each have 2, etc.. Non-alphabetic characters can be considered to have value 0. The value of a word is the sum of the value of all its characters. So 'Smalltalk' has value 101 and 'abc' has value 6. A dollar word is a word whose value is 100. I want to add a method to the String class that returns all the dollar words in the string.
So for example if the input is 'SmallTalk' the result is ('SmallTlk' 'SmllTlk').
Please kindly help me guys. Really appreciate your help.
Thanks.
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation..org/mailman/listinfo/beginners
have a looks at method name containing split use the method finder or alt+shift+w when split selected...
You should be able to find ;)
Cédrick
2008/9/25 Alex Chi alex_chi99@yahoo.com:
Thanks. I'll try to start with the indexing table for each character first. Anyway do you know how to split string based on more than 1 character, for example I want to split string based on some punctuation. I have tried using tokenBasedOn, but still can not figured out how to use it for more than 1 separator.
----- Original Message ---- From: Cédrick Béler cdrick65@gmail.com To: A friendly place to get answers to even the most basic questions about Squeak. beginners@lists.squeakfoundation.org Sent: Wednesday, September 24, 2008 40:44 PM Subject: Re: [Newbies] Collection in Smalltalk
Hi,
As a start you can do:
alphabet := $a to: $z. coll indexOf: $c returns 4
to have both upper and lower case: alphabet indexOf: yourCaracter asLowercase
then you iterate on your string collection and add each result...
not sure about the $ word, but it could be once you detect the sum to be 100...
hth :)
Cédrick
but maybe you could reverse the collection so as to have ($a -> 1 ... $z -> 26)
2008/9/24 Alex Chi alex_chi99@yahoo.com:
Hi guys,
I am just beginner in Smaltalk and I have some problem with collection in smalltalk. For this problem I have to define the value of an alphabetic character based on its location in the alphabet. So 'a' and 'A' each have value 1, 'b' and 'B' each have 2, etc. Non-alphabetic characters can be considered to have value 0. The value of a word is the sum of the value of all its characters. So 'Smalltalk' has value 101 and 'abc' has value 6. A dollar word is a word whose value is 100. I want to add a method to the String class that returns all the dollar words in the string.
So for example if the input is 'SmallTalk' the result is ('SmallTlk' 'SmllTlk').
Please kindly help me guys. Really appreciate your help.
Thanks.
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
-- Cédrick
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Hello Alex,
AC> Thanks. I'll try to start with the indexing table for each character first. AC> Anyway do you know how to split string based on more than 1 AC> character, for example I want to split string based on some AC> punctuation. I have tried using tokenBasedOn, but still can not AC> figured out how to use it for more than 1 separator.
String>>findTokens: is your friend here.
I have a code fragment which reads
tokens := comment asLowercase findTokens: mySeparators
As I use this fairly often, someplace I have code to initialise mySeparators like:
mySeparators := Array new: 13 mySeparators at: 1 put: $- ; at: 2 put: $( ..... and so on.
Cheers,
Herbert
"Herbert" == Herbert König herbertkoenig@gmx.net writes:
Herbert> Hello Alex, AC> Thanks. I'll try to start with the indexing table for each character first. AC> Anyway do you know how to split string based on more than 1 AC> character, for example I want to split string based on some AC> punctuation. I have tried using tokenBasedOn, but still can not AC> figured out how to use it for more than 1 separator.
String> findTokens: is your friend here.
Herbert> I have a code fragment which reads
Herbert> tokens := comment asLowercase findTokens: mySeparators
Herbert> As I use this fairly often, someplace I have code to initialise Herbert> mySeparators like:
Herbert> mySeparators := Array new: 13 Herbert> mySeparators at: 1 put: $- ; at: 2 put: $( ..... Herbert> and so on.
You can just write that as a literal:
mySeparators := #($- $().
Am 25.09.2008 um 06:40 schrieb Randal L. Schwartz:
"Herbert" == Herbert König herbertkoenig@gmx.net writes:
Herbert> Hello Alex, AC> Thanks. I'll try to start with the indexing table for each character first. AC> Anyway do you know how to split string based on more than 1 AC> character, for example I want to split string based on some AC> punctuation. I have tried using tokenBasedOn, but still can not AC> figured out how to use it for more than 1 separator.
String> findTokens: is your friend here.
Herbert> I have a code fragment which reads
Herbert> tokens := comment asLowercase findTokens: mySeparators
Herbert> As I use this fairly often, someplace I have code to initialise Herbert> mySeparators like:
Herbert> mySeparators := Array new: 13 Herbert> mySeparators at: 1 put: $- ; at: 2 put: $( ..... Herbert> and so on.
You can just write that as a literal:
mySeparators := #($- $().
Err, what's wrong with using a String?
mySeparators := '-(...'
- Bert -
Hello Bert,
BF> Err, what's wrong with using a String?
BF> mySeparators := '-(...'
oops, yes. Even the blank looks good in there.
I just haven't groked yet that Strings are Collections :-)
Cheers,
Herbert
Hello Randal,
Herbert>> mySeparators := Array new: 13 Herbert>> mySeparators at: 1 put: $- ; at: 2 put: $( ..... Herbert>> and so on.
RLS> You can just write that as a literal: RLS> mySeparators := #($- $().
actually yes but I really have 13 separators (ugly) and I may have done it that way if it were numbers.
The first line even reads: mySeparators at: 1 put: ' ' asCharacter; so I understand the whole thing when I read it later. $. and $; makes me stumble and $ is on the verge of unreadable to me.
Btw I just changed that to .. put: Character space. ' ' asCharacter is clear but it itches me to count the blanks anyway.
Details, details :-))
Am 25.09.2008 um 08:33 schrieb Herbert König:
Hello Randal,
Herbert>> mySeparators := Array new: 13 Herbert>> mySeparators at: 1 put: $- ; at: 2 put: $( ..... Herbert>> and so on.
RLS> You can just write that as a literal: RLS> mySeparators := #($- $().
actually yes but I really have 13 separators (ugly) and I may have done it that way if it were numbers.
The first line even reads: mySeparators at: 1 put: ' ' asCharacter; so I understand the whole thing when I read it later. $. and $; makes me stumble and $ is on the verge of unreadable to me.
Btw I just changed that to .. put: Character space. ' ' asCharacter is clear but it itches me to count the blanks anyway.
Details, details :-))
In that case I'd suggest
Character separators, '-('
- Bert -
beginners@lists.squeakfoundation.org