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

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
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