# Convert string to int if it contains only int

**URL:** <https://discuss.elastic.co/t/convert-string-to-int-if-it-contains-only-int/161074>\
**Category:** Elasticsearch\
**Created:** [December 17, 2018, 6:03am UTC](https://discuss.elastic.co/t/convert-string-to-int-if-it-contains-only-int/161074 "2018-12-17T06:03:02Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![sid\_nikhil](https://avatars.discourse-cdn.com/v4/letter/s/f9ae1b/32.png) [@sid\_nikhil](https://discuss.elastic.co/u/sid_nikhil)\
**Post date:** [December 17, 2018, 6:03am UTC](https://discuss.elastic.co/t/convert-string-to-int-if-it-contains-only-int/161074/1 "2018-12-17T06:03:02Z")

</div>

String parts = "123"  
parts.matches("[0-9]+") ?Integer.parseInt(parts): parts

I am using above script to create a scripted field  
if a string contains integer : convert it to int and return  
else return as it is  
But i am getting errors and scripted field is not getting created.  
Can someone point out error. I am very new to ES and painless script

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [December 17, 2018, 6:04am UTC](https://discuss.elastic.co/t/convert-string-to-int-if-it-contains-only-int/161074/2 "2018-12-17T06:04:08Z")

</div>

> [@sid\_nikhil](#):
>
> But i am getting errors and scripted field is not getting created.

Posting your errors would help,

Please remember to format your code using the `</>` button.

---

<div class="post-metadata">

**Author:** ![sid\_nikhil](https://avatars.discourse-cdn.com/v4/letter/s/f9ae1b/32.png) [@sid\_nikhil](https://discuss.elastic.co/u/sid_nikhil)\
**Post date:** [December 17, 2018, 6:05am UTC](https://discuss.elastic.co/t/convert-string-to-int-if-it-contains-only-int/161074/3 "2018-12-17T06:05:31Z")

</div>

Note: parts[-1] in this pic corresponds to "parts" in my question

 ![Capture0](https://us1.discourse-cdn.com/elastic/original/3X/3/c/3ce6a4b11c055ffa8b202d79655159ea5ce16cc4.png)

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [December 17, 2018, 6:06am UTC](https://discuss.elastic.co/t/convert-string-to-int-if-it-contains-only-int/161074/4 "2018-12-17T06:06:18Z")

</div>

Please don't post pictures of text, they are difficult to read and some people may not be even able to see them.

---

<div class="post-metadata">

**Author:** ![sid\_nikhil](https://avatars.discourse-cdn.com/v4/letter/s/f9ae1b/32.png) [@sid\_nikhil](https://discuss.elastic.co/u/sid_nikhil)\
**Post date:** [December 17, 2018, 6:08am UTC](https://discuss.elastic.co/t/convert-string-to-int-if-it-contains-only-int/161074/5 "2018-12-17T06:08:03Z")

</div>

My Script :  
String parts = "123"  
parts.matches("[0-9]+") ?Integer.parseInt("parts"): parts

This is the error i got :

Note: parts[-1] here corresponds to "parts" in My Script

{  
"root\_cause": [  
{  
"type": "script\_exception",  
"reason": "compile error",  
"script\_stack": [  
"... index'].value);\nparts[-1].matches("[0-9]+") ?Integ ...",  
" ^---- HERE"  
],  
"script": "String parts = /\_/.split(doc['_index'].value);\nparts[-1].matches("[0-9]+") ?Integer.parseInt("4"): parts[-1]\n\n",  
"lang": "painless"  
}  
],  
"type": "search\_phase\_execution\_exception",  
"reason": "all shards failed",  
"phase": "query",  
"grouped": true,  
"failed\_shards": [  
{  
"shard": 0,  
"index": "kibana\_sample\_data\_flights",  
"node": "obX0kP72Txenm9NhCQgKzA",  
"reason": {  
"type": "script\_exception",  
"reason": "compile error",  
"script\_stack": [  
"... index'].value);\nparts[-1].matches("[0-9]+") ?Integ ...",  
" ^---- HERE"  
],  
"script": "String[] parts = /_/.split(doc['\_index'].value);\nparts[-1].matches("[0-9]+") ?Integer.parseInt("4"): parts[-1]\n\n",  
"lang": "painless",  
"caused\_by": {  
"type": "illegal\_argument\_exception",  
"reason": "method [java.lang.String, matches/1] not found"  
}  
}  
}  
]  
}

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [January 14, 2019, 6:08am UTC](https://discuss.elastic.co/t/convert-string-to-int-if-it-contains-only-int/161074/6 "2019-01-14T06:08:04Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
