Skip to content

Java print statement not printing all variables

I am trying to print some data from a text file, data in file would be something like this

user1.txt

1,1412.0  
2,345.0  
3,500.0  
4,234.0  
5  

**As somebody saying the text file may contain r ** i will provide link for my user1.txt file https://drive.google.com/file/d/1aLCFQhduyt2e3VuBSgR-KJyKgmlz5gO0/view?usp=sharing

Code:

public class Main {

    public static void main(String[] args) throws IOException {
        // write your code here
        File f = new File("D:\Fit\user1.txt");
        Scanner sc = new Scanner(f);
        Scanner csc = new Scanner(f);
        sc.useDelimiter("[,n]");
        while (sc.hasNext()){
           String d= sc.next();
           try {                                //I only need to print upto 4,234.0 so using a try block
               String c = sc.next();            //to skip the last line in text file which is "5"          
               System.out.println("Day"+d+":"+c+" cal");
           }
           catch (Exception e){
               break;
           }
        }

    }
}

My problem is, the output that i need

Day1:1412.0 cal  
Day2:345.0 cal  
Day3:500.0 cal  
Day4:234.0 cal 

But the output it gives is

 cal    
 cal    
 cal    
 cal    
 cal    

If i used System.out.println("Day"+d+":"+c); it gives the output as normal like
output:

Day1:1412.0    
Day2:345.0    
Day3:500.0    
Day4:234.0  

I dunno why it only prints “cal” if I used System.out.println("Day"+d+":"+c+" cal")

Answer

change String c = sc.next(); to String c = sc.nextLine().substring(1); you will get output:

Day1:1412.0 cal
Day2:345.0 cal
Day3:500.0 cal
Day4:234.0 cal