Skip to main content
Code Review

Return to Question

edited body
Source Link
Marco
  • 71
  • 3
package stringcalculator
/**
 * Created by MarcopTo on 20/10/2015.
 */
class InputParser() {
 private val defaultSeparator: String = ",|\n"
 private val singleSeparatorPosition: Int = 2
 def parse(input: String): (String, String) =
 if (containsSeparetorcontainsSeparator(input)) {
 val endOfHeader: Int = input.indexOf("\n")
 val separetor = extractSeparator(input,endOfHeader)
 val in = extractInput(input,endOfHeader)
 (in, separetor)
 }else
 (defaultInput(input), defaultSeparator)
 private def defaultInput(input: String): String = if (input.isEmpty) "0" else input
 private def containsSeparetorcontainsSeparator(in: String): Boolean = in.contains("//")
 private def extractInput(input: String,endOfHeader: Int): String = input.substring(endOfHeader+1)
 private def extractSeparator(in: String,endOfHeader: Int): String = {
 val header = getHeader(in, endOfHeader)
 if (containsMultipleSeparator(header))
 in.substring(in.indexOf("[") + 1, in.indexOf("]"))
 else
 header.charAt(singleSeparatorPosition).toString
 }
 private def getHeader(in: String, endOfHeader: Int): String = in.substring(0, endOfHeader)
 private def containsMultipleSeparator(in: String): Boolean = in.contains("[")
}
 
 
 
package stringcalculator
/**
 * Created by MarcopTo on 20/10/2015.
 */
class InputParser() {
 private val defaultSeparator: String = ",|\n"
 private val singleSeparatorPosition: Int = 2
 def parse(input: String): (String, String) =
 if (containsSeparetor(input)) {
 val endOfHeader: Int = input.indexOf("\n")
 val separetor = extractSeparator(input,endOfHeader)
 val in = extractInput(input,endOfHeader)
 (in, separetor)
 }else
 (defaultInput(input), defaultSeparator)
 private def defaultInput(input: String): String = if (input.isEmpty) "0" else input
 private def containsSeparetor(in: String): Boolean = in.contains("//")
 private def extractInput(input: String,endOfHeader: Int): String = input.substring(endOfHeader+1)
 private def extractSeparator(in: String,endOfHeader: Int): String = {
 val header = getHeader(in, endOfHeader)
 if (containsMultipleSeparator(header))
 in.substring(in.indexOf("[") + 1, in.indexOf("]"))
 else
 header.charAt(singleSeparatorPosition).toString
 }
 private def getHeader(in: String, endOfHeader: Int): String = in.substring(0, endOfHeader)
 private def containsMultipleSeparator(in: String): Boolean = in.contains("[")
}
 
 
 
package stringcalculator
/**
 * Created by MarcopTo on 20/10/2015.
 */
class InputParser() {
 private val defaultSeparator: String = ",|\n"
 private val singleSeparatorPosition: Int = 2
 def parse(input: String): (String, String) =
 if (containsSeparator(input)) {
 val endOfHeader: Int = input.indexOf("\n")
 val separetor = extractSeparator(input,endOfHeader)
 val in = extractInput(input,endOfHeader)
 (in, separetor)
 }else
 (defaultInput(input), defaultSeparator)
 private def defaultInput(input: String): String = if (input.isEmpty) "0" else input
 private def containsSeparator(in: String): Boolean = in.contains("//")
 private def extractInput(input: String,endOfHeader: Int): String = input.substring(endOfHeader+1)
 private def extractSeparator(in: String,endOfHeader: Int): String = {
 val header = getHeader(in, endOfHeader)
 if (containsMultipleSeparator(header))
 in.substring(in.indexOf("[") + 1, in.indexOf("]"))
 else
 header.charAt(singleSeparatorPosition).toString
 }
 private def getHeader(in: String, endOfHeader: Int): String = in.substring(0, endOfHeader)
 private def containsMultipleSeparator(in: String): Boolean = in.contains("[")
}
 
 
 
added 15 characters in body; edited title
Source Link
Marco
  • 71
  • 3

Solution of String Calculator Kata in Scala

This is my solution of string calulator kata in scala(i'm new of tdd). I'd like a general review of this.

package stringcalculator
/**
 * Created by MarcopTo on 20/10/2015.
 */
class InputParser() {
 private val defaultSeparator: String = ",|\n"
 private val singleSeparatorPosition: Int = 2
 def parse(input: String): (String, String) =
 if (containsSeparetor(input)) {
 val endOfHeader: Int = input.indexOf("\n")
 val separetor = extractSeparator(input,endOfHeader)
 val in = extractInput(input,endOfHeader)
 (in, separetor)
 }else
 (defaultInput(input), defaultSeparator)
 private def defaultInput(input: String): String = if (input.isEmpty) "0" else input
 private def containsSeparetor(in: String): Boolean = in.contains("//")
 private def extractInput(input: String,endOfHeader: Int): String = input.substring(endOfHeader+1)
 private def extractSeparator(in: String,endOfHeader: Int): String = {
 val header = getHeader(in, endOfHeader)
 if (containsMultipleSeparator(header))
 in.substring(in.indexOf("[") + 1, in.indexOf("]"))
 else
 header.charAt(singleSeparatorPosition).toString
 }
 private def getHeader(in: String, endOfHeader: Int): String = in.substring(0, endOfHeader)
 private def containsMultipleSeparator(in: String): Boolean = in.contains("[")
}

Thanks for feedback

Solution of String Calculator Kata

This is my solution of string calulator kata in scala(i'm new of tdd).

package stringcalculator
/**
 * Created by MarcopTo on 20/10/2015.
 */
class InputParser() {
 private val defaultSeparator: String = ",|\n"
 private val singleSeparatorPosition: Int = 2
 def parse(input: String): (String, String) =
 if (containsSeparetor(input)) {
 val endOfHeader: Int = input.indexOf("\n")
 val separetor = extractSeparator(input,endOfHeader)
 val in = extractInput(input,endOfHeader)
 (in, separetor)
 }else
 (defaultInput(input), defaultSeparator)
 private def defaultInput(input: String): String = if (input.isEmpty) "0" else input
 private def containsSeparetor(in: String): Boolean = in.contains("//")
 private def extractInput(input: String,endOfHeader: Int): String = input.substring(endOfHeader+1)
 private def extractSeparator(in: String,endOfHeader: Int): String = {
 val header = getHeader(in, endOfHeader)
 if (containsMultipleSeparator(header))
 in.substring(in.indexOf("[") + 1, in.indexOf("]"))
 else
 header.charAt(singleSeparatorPosition).toString
 }
 private def getHeader(in: String, endOfHeader: Int): String = in.substring(0, endOfHeader)
 private def containsMultipleSeparator(in: String): Boolean = in.contains("[")
}

Thanks for feedback

String Calculator Kata in Scala

This is my solution of string calulator kata in scala(i'm new of tdd). I'd like a general review of this.

package stringcalculator
/**
 * Created by MarcopTo on 20/10/2015.
 */
class InputParser() {
 private val defaultSeparator: String = ",|\n"
 private val singleSeparatorPosition: Int = 2
 def parse(input: String): (String, String) =
 if (containsSeparetor(input)) {
 val endOfHeader: Int = input.indexOf("\n")
 val separetor = extractSeparator(input,endOfHeader)
 val in = extractInput(input,endOfHeader)
 (in, separetor)
 }else
 (defaultInput(input), defaultSeparator)
 private def defaultInput(input: String): String = if (input.isEmpty) "0" else input
 private def containsSeparetor(in: String): Boolean = in.contains("//")
 private def extractInput(input: String,endOfHeader: Int): String = input.substring(endOfHeader+1)
 private def extractSeparator(in: String,endOfHeader: Int): String = {
 val header = getHeader(in, endOfHeader)
 if (containsMultipleSeparator(header))
 in.substring(in.indexOf("[") + 1, in.indexOf("]"))
 else
 header.charAt(singleSeparatorPosition).toString
 }
 private def getHeader(in: String, endOfHeader: Int): String = in.substring(0, endOfHeader)
 private def containsMultipleSeparator(in: String): Boolean = in.contains("[")
}
added 1060 characters in body
Source Link
Marco
  • 71
  • 3

String Calculator

Create a simple String calculator with a method int Add(string numbers) The method can take 0, 1 or 2 numbers, and will return their sum (for an empty string it will return 0) for example "" or "1" or "1,2"

-Allow the Add method to handle an unknown amount of numbers

-Allow the Add method to handle new lines between numbers (instead of commas). the following input is ok: "1\n2,3" (will equal 6) the following input is NOT ok: "1,\n" (not need to prove it - just clarifying)

-Support different delimiters to change a delimiter, the beginning of the string will contain a separate line that looks like this:
"//[delimiter]\n[numbers...]" for example "//;\n1;2" should return three where the default delimiter is ‘;’ .

-Numbers bigger than 1000 should be ignored, so adding 2 + 1001 = 2

-Delimiters can be of any length with the following format: "//[delimiter]\n" for example: "//[]\n12***3" should return 6

String Calculator

Create a simple String calculator with a method int Add(string numbers) The method can take 0, 1 or 2 numbers, and will return their sum (for an empty string it will return 0) for example "" or "1" or "1,2"

-Allow the Add method to handle an unknown amount of numbers

-Allow the Add method to handle new lines between numbers (instead of commas). the following input is ok: "1\n2,3" (will equal 6) the following input is NOT ok: "1,\n" (not need to prove it - just clarifying)

-Support different delimiters to change a delimiter, the beginning of the string will contain a separate line that looks like this:
"//[delimiter]\n[numbers...]" for example "//;\n1;2" should return three where the default delimiter is ‘;’ .

-Numbers bigger than 1000 should be ignored, so adding 2 + 1001 = 2

-Delimiters can be of any length with the following format: "//[delimiter]\n" for example: "//[]\n12***3" should return 6

added 3 characters in body
Source Link
Marco
  • 71
  • 3
Loading
Source Link
Marco
  • 71
  • 3
Loading
lang-scala

AltStyle によって変換されたページ (->オリジナル) /