# String array loadStrings split

**URL:** https://discourse.processing.org/t/string-array-loadstrings-split/35636
**Category:** Beginners
**Tags:** homework
**Created:** [March 9, 2022, 11:11am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636 "2022-03-09T11:11:31Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![nina1](https://avatars.discourse-cdn.com/v4/letter/n/53a042/32.png) [@nina1](https://discourse.processing.org/u/nina1)
#### Post date: [March 9, 2022, 11:11am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/1 "2022-03-09T11:11:31Z")

</div>

Please can anyone help me please? Iknow how to load Strings but idk how to Split them with “!,?,.”

Write a program that reads a text file with a name of your choice and has the following content:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod  
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua? At vero  
eos et accusam et just duo dolores et ea rebum! Stet clita kasd gubergren, no sea  
takimata sanctus est Lorem ipsum dolor sit amet.

Your program should display this text sentence by sentence in the console. That means one sentence per line. As soon as a sentence ends, a new line should be started.

---

<div class="post-metadata">

### Author: ![Chrisir](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chrisir/32/45_2.png) [@Chrisir](https://discourse.processing.org/u/Chrisir)
#### Post date: [March 9, 2022, 11:17am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/2 "2022-03-09T11:17:10Z")

</div>

I think you want `splitTokens()`

```auto
     String[] q = splitTokens(myLoadedStrings, "!?.");

```

see [Reference / Processing.org](https://processing.org/reference/splitTokens_.html)

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [March 9, 2022, 11:48am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/3 "2022-03-09T11:48:26Z")

</div>

Hello,

> [@nina1](#):
>
> Pleace can anyone help me please? Iknow how to load Strings but idk how to Split them with “!,?,.”

The Processing website has resources to help you:  
[https://processing.org/](https://processing.org/)

Learning to navigate this site and use these resources is important and will help you progress.

For example:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/4/4d35b4e32cc27eec0accfd743555da8e5ffb433d.png)

`:)`

---

<div class="post-metadata">

### Author: ![nina1](https://avatars.discourse-cdn.com/v4/letter/n/53a042/32.png) [@nina1](https://discourse.processing.org/u/nina1)
#### Post date: [March 9, 2022, 11:50am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/4 "2022-03-09T11:50:49Z")

</div>

Thank you for your answer. yes it worked but it deleted the separator`

```auto
String [] text = loadStrings("data.txt");
String [] finaleAusgabe = {};

for (int i =0; i<text.length; i++){
  finaleAusgabe = splitTokens(text[i], "!?.");
  printArray(finaleAusgabe);
}

```

`

 ![grafik](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/0/0aac8ebfe8fef9d3c7f22ef6755e907e3ab4ee85.png)

---

<div class="post-metadata">

### Author: ![Chrisir](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chrisir/32/45_2.png) [@Chrisir](https://discourse.processing.org/u/Chrisir)
#### Post date: [March 9, 2022, 11:52am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/5 "2022-03-09T11:52:34Z")

</div>

AND after At vero no line break should occur!

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [March 9, 2022, 11:54am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/6 "2022-03-09T11:54:22Z")

</div>

Hello,

Combine the strings and then split them comes to mind.

Give it some thought!

How can you make this work with what you have?

`:)`

---

<div class="post-metadata">

### Author: ![Chrisir](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chrisir/32/45_2.png) [@Chrisir](https://discourse.processing.org/u/Chrisir)
#### Post date: [March 9, 2022, 11:57am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/7 "2022-03-09T11:57:59Z")

</div>

> [@nina1](#):
>
> it deleted the separator

That’s true.

You can either

- write your own function splittTokensPreservingSeparator that does what you need OR
- you stay with your current approach: then you need to search each of the resulting sentences (in a for-loop) in the initial long text, check the separator in the initial long text (after the finding) and add separator to the resulting sentence.

Both are tricky. 😉

---

<div class="post-metadata">

### Author: ![nina1](https://avatars.discourse-cdn.com/v4/letter/n/53a042/32.png) [@nina1](https://discourse.processing.org/u/nina1)
#### Post date: [March 9, 2022, 11:59am UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/8 "2022-03-09T11:59:01Z")

</div>

thank you for your reply)

---

<div class="post-metadata">

### Author: ![nina1](https://avatars.discourse-cdn.com/v4/letter/n/53a042/32.png) [@nina1](https://discourse.processing.org/u/nina1)
#### Post date: [March 9, 2022, 12:40pm UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/9 "2022-03-09T12:40:40Z")

</div>

too difficult to do it… still did not check it …

```auto
String [] text = loadStrings("data.txt");
String [] finaleAusgabe = {};
String [] c = {};
String [] a = {};
for (int i =0; i<text.length; i++){
  a = splitTokens(text[i], " ");
  c = concat(a,a);
  printArray(c);
  //finaleAusgabe = concat(finaleAusgabe, c);
  printArray(finaleAusgabe);
  //finaleAusgabe = concat(finaleAusgabe, c);
  //finaleAusgabe = splitTokens(text[i], "!?.");
  
}
//printArray(finaleAusgabe);

```

---

<div class="post-metadata">

### Author: ![nina1](https://avatars.discourse-cdn.com/v4/letter/n/53a042/32.png) [@nina1](https://discourse.processing.org/u/nina1)
#### Post date: [March 9, 2022, 1:16pm UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/10 "2022-03-09T13:16:35Z")

</div>

Hello, how can i combine the Strings?

---

<div class="post-metadata">

### Author: ![nina1](https://avatars.discourse-cdn.com/v4/letter/n/53a042/32.png) [@nina1](https://discourse.processing.org/u/nina1)
#### Post date: [March 9, 2022, 1:57pm UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/11 "2022-03-09T13:57:12Z")

</div>

I found the Solution!!! It was a long way!! thank you for your attention!!

```auto
String [] text = loadStrings("data.txt");
String [] finaleAusgabe = {};
String [] c = {};
String [] a = {};
for (int i =0; i<text.length; i++) {
  a = splitTokens(text[i], " ");
  finaleAusgabe = concat(finaleAusgabe, a);
}
for (int i=0; i<finaleAusgabe.length; i++) {
  print(finaleAusgabe[i]+ " ");
  if (finaleAusgabe[i].contains("!")) {
    print("\n");
  };
  if (finaleAusgabe[i].contains(".")) {
    print("\n");
  };
  if (finaleAusgabe[i].contains("?")) {
    print("\n");
  }
}

```

---

<div class="post-metadata">

### Author: ![Chrisir](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/chrisir/32/45_2.png) [@Chrisir](https://discourse.processing.org/u/Chrisir)
#### Post date: [March 9, 2022, 4:25pm UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/12 "2022-03-09T16:25:55Z")

</div>

Well done!

Very proud of you right now!

Maybe I can show my way later. I guess yours is faster though…

Here is my version:

```auto

// String [] text = loadStrings("data.txt");
String [] text = {
  "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod", 
  "tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua? At vero", 
  "eos et accusam et just duo dolores et ea rebum! Stet clita kasd gubergren, no sea", 
  "takimata sanctus est Lorem ipsum dolor sit amet."
};

String [] finaleAusgabe = {""};

void setup() {
  //
  // wir setzen alle Zeilen zu einem String ergebnisSumme zusammen, weil sich ein Satz über mehrere Zeilen erstrecken kann
  String ergebnisSumme = ""; 
  for (int i = 0; i<text.length; i++) {
    ergebnisSumme += text[i].trim()+" ";
  }//for

  // letztes Leerzeichen entfernen  
  ergebnisSumme = ergebnisSumme.trim();
  println(ergebnisSumme);
  println( "***");   

  // Wir gehen den String ergebnisSumme buchstabenweise durch
  int indexFinaleAusgabe=0; 
  for (int i=0; i< ergebnisSumme.length(); i++) {

    // Wir hängen den Buchstaben an (oder auch "!", "?" oder ".")
    finaleAusgabe[indexFinaleAusgabe] += ergebnisSumme.charAt(i);

    // Satzende? 
    if ("!?.".contains(""+ergebnisSumme.charAt(i))) {
      // Ja
      // Die fertige Zeile wird noch beschnitten (betrifft ihren Anfang, an dem noch das Leerzeichen des letzten Satzes steht)
      finaleAusgabe[indexFinaleAusgabe] = finaleAusgabe[indexFinaleAusgabe].trim();

      // eine neue Zeile wird angehängt und der Index erhöht
      finaleAusgabe = append(finaleAusgabe, "");
      indexFinaleAusgabe++;
    }// if
  }//for

  // The last line of the array finaleAusgabe was probably empty so we remove it
  if (finaleAusgabe[finaleAusgabe.length-1].trim().equals("")) {
    finaleAusgabe=shorten(finaleAusgabe);
  }//if

  // Ausgabe des array finaleAusgabe
  for (String s1 : finaleAusgabe) { 
    println(s1);
  }
  println( "***");
}//func 
//

```

* * *

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [March 12, 2022, 8:26pm UTC](https://discourse.processing.org/t/string-array-loadstrings-split/35636/13 "2022-03-12T20:26:46Z")

</div>

Hello @nina1,

Pleased to see that you found your own solution.  
I also explored many different ways to do this and your solution was unique and worked.

> [@nina1](#):
>
> how can i combine the Strings?

I am adding to this topic for future reference.

Examples here:

- [https://processing.org/reference/addition.html](https://processing.org/reference/addition.html)
- [https://processing.org/reference/String\_substring\_.html](https://processing.org/reference/String_substring_.html)
- [https://processing.org/tutorials/text](https://processing.org/tutorials/text)

Going beyond the _Processing_ functions you can also use the many Java methods available to you:

> **[Lesson: Numbers and Strings (The Java™ Tutorials \> Learning the Java...](https://docs.oracle.com/javase/tutorial/java/data/index.html)**
>
> This beginner Java tutorial describes fundamentals of programming in the Java programming language

This reference links to the _Java Documentation_ (Java 8) which has more string methods:  
[https://processing.org/reference/String.html](https://processing.org/reference/String.html)

`:)`
