> For the complete documentation index, see [llms.txt](https://docs.incari.com/incari-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.incari.com/incari-studio/2022.1/toolbox/string/formatarray.md).

# FormatArray

## Overview

![The FormatArray Node.](/files/p42k8WXFivdrth1FU7h6)

The **FormatArray** **Node** receives a **Pattern** **String** that can contain *format specifiers* and an **Array** containing data values. It then outputs the **String** formatted with the data values from the **Array** in place of the *format specifiers*. The *format specifiers* define the type of data that will fill them and the format the data will be shown in.

This **Node** is useful for when data needs to presented within a text. For example, to show the current temperature. For this, we can use the **Pattern** **String** `The current temperature is %.1f °C`, where `%.1f` is the *format specifier* that indicates that a **Float** value with one decimal place will take that position in the final formatted **String**. The value of the current temperature has to be given to the **Node** as a value in an **Array** and then, if the current temperature is, say, `20.3` degrees Celsius, the formatted **String** that the **Node** outputs will be `The current temperature is 20.3°C`.

See more about [*format specifiers*](/incari-studio/2022.1/toolbox/string/format.md#format-specifiers) and [*usage examples*](/incari-studio/2022.1/toolbox/string/format.md#usage-examples).

[**Scope**](/incari-studio/2022.1/toolbox/overview.md#scopes): **Project**, **Scene**, **Function**, **Prefab**.

## Attributes

![The FormatArray Node Attributes.](/files/9y1CWImREtZNDgcxrWz0)

### Inputs

| Attribute         | Type       | Description                                                                 |
| ----------------- | ---------- | --------------------------------------------------------------------------- |
| `Default Pattern` | **String** | The **Pattern String**, if none is given in the `Pattern` **Input Socket**. |

## Inputs

| Input             | Type       | Description                                                                                |
| ----------------- | ---------- | ------------------------------------------------------------------------------------------ |
| *Pulse Input* (►) | **Pulse**  | A standard **Input Pulse**, to trigger the execution of the **Node**.                      |
| `Pattern`         | **String** | The **Pattern String**.                                                                    |
| `Values`          | **Array**  | **Array** containing the data values that will be used to replace the *format specifiers*. |

## Outputs

| Output             | Type       | Description                                                                                                                            |
| ------------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| *Pulse Output* (►) | **Pulse**  | A standard **Output Pulse**, to move onto the next **Node** along the **Logic Branch**, once this **Node** has finished its execution. |
| `Formatted`        | **String** | The formatted **String**, with the data values from the **Array** replacing the *format specifiers*.                                   |

## See Also

* [**Format Array**](/incari-studio/2022.1/toolbox/string/formatarray.md)

## External Links

* [*Printf Format String*](https://en.wikipedia.org/wiki/Printf_format_string) on Wikipedia.
* [\_Printf](https://www.cplusplus.com/reference/cstdio/printf/) on cplusplus.com.
