Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2001
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Manipulating Strings

  • To: mathgroup at smc.vnet.net
  • Subject: [mg28286] RE: [mg28248] Manipulating Strings
  • From: "Harvey P. Dale" <hpd1 at nyu.edu>
  • Date: Sat, 7 Apr 2001 03:44:44 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Brian:
	str1="CLKJLDiCXLklJDMXLKJdLmxLLLEIKXMDLKJcMDLKJXMeNNlB"
	StringJoin[Characters[str1]//.{a___,b_,b_,c___}\[Rule]{a,b,c}]
	Then the output is: CLKJLDiCXLklJDMXLKJdLmxLEIKXMDLKJcMDLKJXMeNlB
	Best,
	Harvey
Professor Harvey P. Dale
Director
National Center on Philanthropy and the Law
New York University School of Law
Room 206A
110 West 3rd Street
New York, N.Y. 10012-1074
tel: 212-998-6161
fax: 212-995-3149


 -----Original Message-----
From: 	bghiggins at ucdavis.edu [mailto:bghiggins at ucdavis.edu] 
To: mathgroup at smc.vnet.net
Sent:	Friday, April 06, 2001 1:53 AM
To:	mathgroup at smc.vnet.net
Subject:	[mg28248] Manipulating Strings

Dear Math group,

I have a string with runs of repeated characters and  want to  replace
sequences of repeated characters with a single character. For example
consider the string

"CLKJLDiCXLklJDMXLKJdLmxLLLEIKXMDLKJcMDLKJXMeNNlB"
Thus I want a function that will take the groups "LLL" and "NN" in the
above string and replace them with "L" and "N". 

Now I have been able to devise such a function but it seems pretty
clunky, and I was wondering if anyone had a better idea tha made use
of StringMatchQ to do the same task. Here is my method

squash[str_String] := Module[{repeatCharList, repeatPattern,
repeatChar},
    repeatCharList = 
      Select[Split[Characters[proteinString2]], Length[#] > 1 &];
    repeatPattern = Apply[StringJoin, repeatCharList, 1];
    repeatChar = Map[First, repeatCharList];
    StringReplace[str, Thread[repeatPattern -> repeatChar]]]

Thanks much,

Brian


  • Prev by Date: Re: Manipulating Strings
  • Next by Date: Re: MATHEMATICA WARNING
  • Previous by thread: Re: Manipulating Strings
  • Next by thread: Re: Manipulating Strings