[resolved] String index out of range error

One Star

[resolved] String index out of range error

Hi all;
I am trying to read data from xml file and write them to Mysql db. In my db House_no field's data type is String(40). In xml file there are some house no values that longer than 40 and i want to cut all the values that are greater than 40.
so i try the code below in tMap but i got "java.lang.StringIndexOutOfBoundsException: String index out of range: 40 at java.lang.String.substring(Unknown Source)" error?
row4.house_no.length()>40 ?"" : row4.house_no.substring(0,40)
Do you have any idea what cause this error, or a better way to take 0-40 character without using tJavaRow.
Best Regards
Bahadir

Accepted Solutions
One Star

Re: [resolved] String index out of range error

Hi
Sorry my mistake
row4.house_no.trim().length()<40 ?row4.house_no.trim() : row4.house_no.trim().substring(0,39)

All Replies
Seven Stars

Re: [resolved] String index out of range error

substring throws that error if the String length if less than 40 because it tries to get 40 characters. Instead use StringHandling.LEFT(row4.house_no,40) on its own. (Also, your expression is actually setting the house_no to blank if it's longer than 40 characters.)
One Star

Re: [resolved] String index out of range error

Hi,
Thanks for your answer, i will try as soon as possible
Best Regards
Bahadir
One Star

Re: [resolved] String index out of range error

Hi again,
I have tried your suggestion as, StringHandling.LEFT(row4.house_no,40) but i am getting
"Exception in component tMap_14
java.lang.NullPointerException
at routines.StringHandling.LEFT(StringHandling.java:184)" error. Do you have any idea to solve this issue?
Best Regards
Bahadir
One Star

Re: [resolved] String index out of range error

Hi
row4.house_no.trim().length()>40 ?"" : row4.house_no.trim().substring(0,39)
Highlighted
One Star

Re: [resolved] String index out of range error

Hi,
Thanks for you answer, i have tried as you wrote and i got
"Exception in component tMap_14
java.lang.StringIndexOutOfBoundsException: String index out of range: 39
at java.lang.String.substring(Unknown Source)" error?
Best Regards
Bahadir
One Star

Re: [resolved] String index out of range error

Hi
Sorry my mistake
row4.house_no.trim().length()<40 ?row4.house_no.trim() : row4.house_no.trim().substring(0,39)
One Star

Re: [resolved] String index out of range error

Hi,
After 158 row i am getting ""Exception in component tMap_14 java.lang.NullPointerException" again! ?
Best Regards
Bahadir
One Star

Re: [resolved] String index out of range error

Hi
Add Relational.ISNULL(row4.house_no)?"":row4.house_no.trim().length()<40 ?row4.house_no.trim() : row4.house_no.trim().substring(0,39)
One Star

Re: [resolved] String index out of range error

Hi,
This one works great, thanks. But can you explain how does it work, i could not figure out?
Best Regards
Bahadir
One Star

Re: [resolved] String index out of range error

Hi
It will first check row4.house_no is null or not, if null then it will assign blank values
If not null, it will check the legth of the house_no, if less than 40 no change
else
row4.house_no= row4.house_no.trim().substring(0,39) //take only the first 40 characters
as in java the numbering starts from 0 so the max should be 39
hope it clarifies you.
One Star

Re: [resolved] String index out of range error

Hi,
Thank you for your answer, it helps very much.
Best Regards
Bahadir

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

Best Practices for Using Context Variables with Talend – Part 4

Pick up some tips and tricks with Context Variables

Blog

How Media Organizations Achieved Success with Data Integration

Learn how media organizations have achieved success with Data Integration

Read

6 Ways to Start Utilizing Machine Learning with Amazon We Services and Talend

Look at6 ways to start utilizing Machine Learning with Amazon We Services and Talend

Blog