Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
talend777
Contributor II
Contributor II

tjava handle multiple if-else

we have files that we are reading and trying to rename in some scenarios and below code works..

files --

  • data/file1.csv --> after renaming
    data/datefolder=2025-01-01/file.csv
  • data/file2_2025-01-01.csv --> after renaming renaming
    data/datefolder=2025-01-01/file2_2025-01-01.csv
String regex = "[0-9]{4}[_-][0-9]{2}[_-][0-9]{2}";

java.util.regex.Matcher m = java.util.regex.Pattern.compile(regex).matcher(context.CurrentFileName);

if (m.find()) {           
            context.CurrentFileDate = "datefolder="+(m.group(0).trim().substring(0,4))+"-"+(m.group(0).trim().substring(5,7))+"-"+(m.group(0).trim().substring(8,10));            
        } else {
            context.CurrentFileDate = "datefolder="+formattedDate;                    }

        
        

now we are getting interesting file-names and needed some help how i can modify above if-else statement so it can work.

files --

  • data/file1.csv --> after renaming data/datefolder=2025-01-01/file.csv
  • data/file2_2025-01-01.csv --> after renaming renaming data/datefolder=2025-01-01/file2_2025-01-01.csv
  • data/YYYY=2029/file3.csv --> after renaming data/datefolder=2029-01-01/file3.csv
    • (SO If there is a prefix of YYYY=2029, modify datefolder to get year from yyyy datefolder=2029-01-01 )
  • data/YYYY=2029/MM=03/file4.csv --> after renaming data/datefolder=2029-03-01/file4.csv
    • (SO If there is a prefix of YYYY=2029 & MM=03, modify datefolder to get year from yyyy AND Month from mm, so datefolder=2029-03-01 )
  • data/YYYY=2029/MM=04/DD=22/file5.csv --> after renaming data/datefolder=2029-04-22/file5.csv
    • (SO If there is a prefix of YYYY=2029 & MM=03, modify datefolder to get year from yyyy AND Month from mm and day from dd, so datefolder=2029-04-22 )

any suggestion how to modify above if-else statement ? since matcher in java can only find based on regex, in what i tried so far .

Labels (3)
0 Replies