Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 21:01
    joroKr21 commented #12422
  • 20:50
    SethTisue review_requested #2093
  • 20:50
    SethTisue opened #2093
  • 20:37
    SethTisue edited #9679
  • 20:36
    SethTisue commented #9678
  • 20:36
    SethTisue commented #9678
  • 20:35
    SethTisue commented #9678
  • 20:35
    SethTisue commented #9678
  • 20:35
    SethTisue commented #9678
  • 20:34
    SethTisue edited #9678
  • 20:34
    SethTisue commented #9678
  • 20:33
    SethTisue synchronize #9678
  • 20:32
    pjfanning commented #12422
  • 20:31
    SethTisue synchronize #9679
  • 20:30
    scala-jenkins milestoned #9678
  • 20:30
    SethTisue reopened #9678
  • 20:30
    SethTisue edited #9678
  • 20:30
    SethTisue commented #9678
  • 20:30
    SethTisue commented #9678
  • 20:23
    SethTisue labeled #9679
Deepak Singh
@dpk3d

I've done in Python
Can someone convert in Scala

Solution

ph = "00-44 48 5555 8361"

def normalize(ph):
tmp = []
final_str = ""
index = 0
while( index < len(ph)):
if ph[index] == ' ' or ph[index] == '-':
index +=1
continue
tmp.append(ph[index])
if len(tmp) == 3:
str = ""
final_str = final_str + '-' +str.join(tmp)
tmp = []
index+=1
str = ""
final_str = final_str + '-' +str.join(tmp)
final_str = final_str.lstrip("-").rstrip("-")
return final_str

print (ph)
print (normalize(ph))

Andriy Plokhotnyuk
@plokhotnyuk
s.filter(_.isDigit).sliding(3, 3).mkString("-")
Josef
@Josef-Vonasek
^ or this :D
Did not know about sliding, nice.
Deepak Singh
@dpk3d
@Josef-Vonasek @plokhotnyuk do I've to import something
Andriy Plokhotnyuk
@plokhotnyuk
no
Josef
@Josef-Vonasek
use @plokhotnyuk code, mine is just pseudocode, some of the functions do not exist
Andriy Plokhotnyuk
@plokhotnyuk
here is how it looks in Scala REPL:
$ scala
Welcome to Scala 2.13.0 (OpenJDK 64-Bit GraalVM CE 19.1.1, Java 1.8.0_222).
Type in expressions for evaluation. Or try :help.

scala> val s = "00-44 48 555 8361"
s: String = 00-44 48 555 8361

scala> s.filter(_.isDigit).sliding(3, 3).mkString("-")
                           ^
       warning: method sliding in class StringOps is deprecated (since 2.13.0): Use `s.toSeq.sliding(...).map(_.unwrap)` instead of `s.sliding(...)`
res0: String = 004-448-555-836-1
! "00-44 48 555 8361".filter(_.isDigit).sliding(3, 3).mkString("-")
multibot1
@multibot1
^
warning: method sliding in class StringOps is deprecated (since 2.13.0): Use 's.toSeq.sliding(...).map(_.unwrap)' instead of 's.sliding(...)'
String = 004-448-555-836-1
Andriy Plokhotnyuk
@plokhotnyuk
multibot use Scala 2.13 too :)
Josef
@Josef-Vonasek
! 1 + 1
multibot1
@multibot1
Int = 2
Deepak Singh
@dpk3d
I've little change in case suppose input is "004-44 8553 615 4" -->. Final block or last two block can be of length two … output "004-448 -553 -61-54"
@plokhotnyuk thanks can you give heads up for above case also
Deepak Singh
@dpk3d

Can someone provide the solution for below Problem in Scala::
It's in python I want in scala

https://stackoverflow.com/questions/47448218/find-the-sentence-containing-the-largest-number-of-words-in-a-given-text-codilit

Daniel Gordon
@DanielGGordon

I have this regex with matching groups, and l tested it online via some free regex tester, but in Scala I am having strange results.

  val ProductExtractorRegex: Regex = {
    val Product = """.+?""" //name of the product
    val Dvn = """[A-Z0-9]{5}"""
    val Region = """[A-Z]{2,}""" 
    val ProductCode = """[A-Z0-9]{5}""" 
    val ProductSubtype = """[A-Z0-9]{5}""" 
    val Extension = """(zip|z[0-9]{2})"""
    s"($Product)[\\-_]($Dvn)[\\-_]($Region)[\\-_]($ProductCode)[\\-_]($ProductSubtype)\\.($Extension)".r
  }

val ProductExtractorRegex(productName, dvn, region, productCode, productSubtypeWithUnderscore, extension) = "SOMEPRODUCT_12345_SOMEREGION_OLELS_SLSLS.z01"

I get a scala.match error on this, and it is because of the ProductSubtype. If I get rid of it, and remove that part from the string - it works. But after I add the ProductSubtype, the match fails. Even though it is a very simple 5x letter string.

Martijn Hoekstra
@martijnhoekstra
nothing strikes me as odd -- do you have test input for it?
Daniel Gordon
@DanielGGordon
"SOMEPRODUCT_12345_SOMEREGION_OLELS_SLSLS.z01" is the test input I'm testing right now
Martijn Hoekstra
@martijnhoekstra
Deepak Singh
@dpk3d
@martijnhoekstra 🤘🏻😎
Daniel Gordon
@DanielGGordon
@martijnhoekstra that ProductSubtype was actually supposed to be an optional group, but that didn't work either. Even as non-optional capture group, I get the match error
Martijn Hoekstra
@martijnhoekstra
Extension is two groups
or rather, (Extension) is two groups
Daniel Gordon
@DanielGGordon
it is?
Martijn Hoekstra
@martijnhoekstra
Either remove the parents around Extension, or around its interpolation
Daniel Gordon
@DanielGGordon
OH
jesus
Martijn Hoekstra
@martijnhoekstra
regex, the bread and butter of programming help chat rooms :D
Daniel Gordon
@DanielGGordon
F* me
I spent 2-3 hours on this
That was the issue
Martijn Hoekstra
@martijnhoekstra
:+1:
Daniel Gordon
@DanielGGordon
Really appreciate it
Deepak Singh
@dpk3d
@martijnhoekstra totally agreed dude
Rob Norris
@tpolecat
We need an AI that helps people with regexes.
And another that helps people with cats imports.
(That one could be very simple.)
Martijn Hoekstra
@martijnhoekstra
in fact, I bet I could write a regex for the second one
Rob Norris
@tpolecat
Synergy.
Martijn Hoekstra
@martijnhoekstra
it's kinda lame that you "just" get a match exception, but I don't think you can actually do better
Fabio Labella
@SystemFw
just replaced some regexes with atto, quite pleasant
Rob Norris
@tpolecat
:-)
Eric Peters
@er1c
I have a signature like: def makeAndSetIterableField[V, T <: Iterable[V], F <: ScalarFormField[T]](attrRef: AttributeRef[T], field: F): AttributesFormField[T] that I want to use via: makeAndSetIterableField(attrRef.cast(t) /* Set[Int] */, text[Int](key, name, includeUseValueCheckbox = true)) without being explicit with type parameters makeAndSetIterableField[Int, Set[Int], ...](attrRef.cast(t) /* Set[Int] */, text[Int](key, name, includeUseValueCheckbox = true)) ... I could change the signature to something like: def makeAndSetIterableField[V, T <: Iterable[V], F <: ScalarFormField[T]](attrRef: AttributeRef[_ <: Iterable[V]], field: F): AttributesFormField[T] but then I lose the type T in the attrRef. What am I missing? (and ignore the cast red flag :)
Is this where something like (implicit tag: TypeTag[V]) would help? I guess I could try lol
Hanns Holger Rutz
@Sciss
@er1c is V actually used in the method? If not you can remove it and just write T <: Iterable[Any] since Iterable is covariant in its type-parameter.
likewise with the other parameters; if you can make them covariant, you might be able to get rid of T <: Iterable. And again F. Is it important that it is more specific than ScalarFormField? If not, scrap it, and just write field: ScalarFormField[T]
Eric Peters
@er1c
thanks, that gives me some ideas to play with