Issue
Since I'm not able to find a solution to this problem I'm going to post here a question, hoping someone will help me.
I have a string like this "One, Two, Three, Four, Five, Six, ..." and I need to find a way to insert a new line (\n) after the fourth comma, in this case "One, Two, Three, Four, \n Five, Six, ...".
And this is the code I'm trying to use
for (letters in ingredients.toString()) {
var commasCount = 0
if (letters.toString() == ",") {
commasCount++
if (commasCount == 4) {
ingredients.toString().replace(",", "\n")
}
}
}
UPDATE:
This is my code now, no errors, no warnings but the output is now like this "[Ljava.lang.String@1c7172b" instead of the ingredients, what am I missing now ?
UPDATE PT.2:
database.collection("Pizze").whereEqualTo("section", sectionNumber).get()
.addOnCompleteListener {result ->
if (result.isSuccessful) {
for (document in result.result) {
val name = document.data["_name"].toString()
val price = document.data["price"].toString()
val section = document.data["section"].toString()
var ingredients = arrayOf(document.data["ingredients"].toString()
.replace("[", "")
.replace("]", "")).toString()
var commasCount = 0
for (letters in ingredients.indices) {
if (ingredients[letters].toString() == ",") {
commasCount++
if (commasCount == 4) {
commasCount = 0
ingredients = arrayOf(ingredients.replaceRange(letters, letters + 2, ", \\n ")).toString()
}
}
}
data.add(PizzaViewModel(name, price, section, arrayOf(ingredients)))
data.sortBy { it.name }
val adapter = PizzaCustomAdapter(data, baseContext)
recyclerView.adapter = adapter
}
}
}
Thanks in advance to everyone that will try to help me.
Solution
couple of issues with your code:
replacereturns new stringvar commasCount = 0should be outside loopcommasCountshould be reset once reached 4
try this out:
var ingredients = "One, Two, Three, Four, Five, Six, Two, Three, Four, Five, Six"
var commasCount = 0
for (letters in ingredients.indices) {
if (ingredients[letters].toString() == ",") {
commasCount++
if (commasCount == 4) {
commasCount = 0
ingredients = ingredients.replaceRange(letters, letters + 2, ", \n")
}
}
}
Output will be:
One, Two, Three, Four,
Five, Six, Two, Three
Four, Five, Six
UPDATE: convert it to array after adding new line
database.collection("Pizze").whereEqualTo("section", sectionNumber).get()
.addOnCompleteListener {result ->
if (result.isSuccessful) {
for (document in result.result) {
val name = document.data["_name"].toString()
val price = document.data["price"].toString()
val section = document.data["section"].toString()
var ingredients = document.data["ingredients"].toString()
.replace("[", "")
.replace("]", "")
var commasCount = 0
for (letters in ingredients.indices) {
if (ingredients[letters].toString() == ",") {
commasCount++
if (commasCount == 4) {
commasCount = 0
ingredients = ingredients.replaceRange(letters, letters + 2, ", \n")
}
}
}
data.add(PizzaViewModel(name, price, section, arrayOf(ingredients)))
data.sortBy { it.name }
val adapter = PizzaCustomAdapter(data, baseContext)
recyclerView.adapter = adapter
}
}
}
Answered By - T J
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.