Simple JAVA Programs


1.Write a program to take a number from user and display whether it is perfect number
// Perfect Number

import java.util.Scanner;
public class PerfectNumber {
    public static void main(String[] args) {

        // take numbers from user
        Scanner s = new Scanner(System.in);
        int num = s.nextInt();
        int sum = 0;
        for ( int i = 1;  i <= num/2 ; i ++) {
          if ( num % i == 0 ) {
               sum += i;
          }
        }
        if ( sum == num)
              System.out.println("Perfect Number");
        else
              System.out.println("Not Perfect Number");
    }
}

2.Accept ten numbers from user and display the largest of the given numbers
// Accept ten numbers from user and display the largest of the given numbers.

import java.util.Scanner;

public class LargestNumber {
    public static void main(String[] args) {
        // take number from user
        Scanner s = new Scanner(System.in);
        int num, largest = 0;
        
        for ( int i = 1; i <= 10 ;i ++) {
         System.out.print("Enter a number : ");
         num = s.nextInt();
         if ( num > largest)
              largest = num;
        }
        System.out.println("Largest Number : " + largest);
    }
}
3. Accept two numbers and display the GCD of the numbers
// Accept two numbers and display the GCD of the numbers

import java.util.Scanner;
public class GCD {
    public static void main(String[] args) {
        // take numbers from user
        Scanner s = new Scanner(System.in);
        int first = s.nextInt();
        int second = s.nextInt();
        
        int i = first < second ? first : second;
        
        for ( ;  i > 0 ; i --) {
          if ( first % i == 0 &&  second % i == 0) {
               System.out.println("GCD = " + i);
               break;
          }
        }
    }
}

4. Display first 10 Fibnoacii numbers
// display Fibonacii series 
public class Fibonacii {
    public static void main(String[] args) {
        int first = 1,second = 1, result;
        
        System.out.println(first);
        System.out.println(second);
        
        for ( int i = 3; i <= 10 ; i ++) {
             result = first + second;
             System.out.println( result );
             first = second;
             second = result;
        } // for
    } // end of main
}
5. Accept two numbers on command line and raise base (first number) to power (second number).
// Accept two numbers on command line and raise base (first number) to power (second number).

public class Power {
    public static void main(String[] args) {
        int base = Integer.parseInt( args[0]);
        int power  = Integer.parseInt( args[1]);
        int result =1;
        for ( int i = 1; i <= power ; i ++) {
              result *= base;
        }
        System.out.printf("%d raised to %d = %d", base, power, result);  
    }
    
}


6. Accept a number and display its highest factor
import java.util.Scanner;

public class HighestFactor {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("Enter a number : ");
        int num = s.nextInt();

        for ( int i = num/2; i > 0 ; i --) {
            if ( num % i == 0 ) {
                System.out.printf("Highest Factor : %d\n",i);
                break;
            }
        }

    }
}
7. Accept a number and display the digits in the reverse order
import java.util.Scanner;

public class ReverseDigits {


    public static void main(String[] args) {

        Scanner s = new Scanner(System.in);
        System.out.print("Enter a number : ");
        int num = s.nextInt();

        while( num != 0 )
        {
            System.out.print( num % 10);
            num /= 10;

        }

    }

}

8. Create a function that takes a set of integers using varying length argument and returns the average of all the numbers.
public class AverageOfNumbers {


    public static void main(String[] args) {
       System.out.println( average(10,20,45,33));
       System.out.println( average(12,22,88));
    }

    public static int average(int ... numbers) {
        int total = 0;
        for(int n : numbers)
            total += n;

        return total / numbers.length;
    }
}


9. Create an array of 10 elements. Read values from keyboard and fill the array. Interchange first 5 elements with last 5 elements and display the array.
import java.util.Scanner;

public class InterchangeArray {


    public static void main(String[] args) {

            int a[] = new int[10];

            Scanner s = new Scanner(System.in);

            // read values from keyboard into array
            for ( int i = 0 ; i <  a.length ; i ++) {
                System.out.printf("Enter a number for [%d] element :",i);
                a[i] = s.nextInt();
            }

            System.out.println("Orginal Array");
            printArray(a);

            // interchange array
            for ( int i = 0, j = a.length -1 ; i < a.length / 2; i ++, j --) {
                int t = a[i];
                a[i] = a[j];
                a[j] = t;
            }

            System.out.println("Interchanged Array");
            printArray(a);
        

    }

    public static void printArray(int [] a) {
            for(int n : a) {
                System.out.printf("%5d",n);
            }
    }

}


10. Display palindrome numbers in the range 100 to 1000
public class PalindromeNumbers {

    public static void main(String[] args) {

        for ( int i = 100; i <= 1000; i ++)  {

              int n = i, rn  = 0;
              while (n > 0 ) {
                  int d = n % 10;  // get right most digit
                  rn = rn * 10 + d;
                  n /= 10;   // remove right most digit
              }
              if ( i == rn )
                  System.out.println(i);
        }

    }

}

11.Accept a file and count number of words in the given file.
// counts number of words assuming words are separated with only one space 
import java.io.FileReader;
import java.util.Scanner;

public class CountWords {

    public static void main(String[] args) {
        System.out.print("Enter a filename : ");
        Scanner s = new Scanner(System.in);
        String filename = s.nextLine();

        try (FileReader fr = new FileReader(filename)) {
            int nowords = 0;
            int ch = fr.read();
            while (ch != -1) {
                if (ch == '\n' || ch == ' ') {
                    nowords++;
                }
                ch = fr.read();
            }
            System.out.printf("No. of words =  %d\n", nowords);
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

// A better version of the exercise is given with BufferedReader and split() method of String

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Scanner;

public class CountWordsInFile {

    public static void main(String[] args) {

        System.out.print("Enter a filename : ");
        Scanner s = new Scanner(System.in);
        String filename = s.nextLine();
        try (FileReader fr = new FileReader(filename);
                BufferedReader br = new BufferedReader(fr)) {

            String line = br.readLine();
            int nowords = 0;
            while (line != null) {
                String[] words = line.split(" ");
                // trim words to count only words with non-space characters 
                for (String w : words) {
                    if (w.trim().length() > 0) {
                        nowords++;
                    }
                }
                line = br.readLine();
            }
            System.out.printf("No. of words =  %d\n", nowords);
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

12.Accept a filename, a string and display all lines in the file that contain the given string
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Scanner;

public class DisplayLinesWithString {

    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a filename : ");
        String filename =  scanner.nextLine();
        
        System.out.print("Enter a string  : ");
        String searchstring =  scanner.nextLine();
        try ( FileReader fr = new FileReader(filename);
              BufferedReader br = new BufferedReader(fr)) {
        String line = br.readLine();
        while( line != null) {
            if ( line.contains(searchstring))
                 System.out.println(line);
            
            line = br.readLine();
        }
        }
        catch(Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

13.Display only non-blank lines of the given file along with line numbers.
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Scanner;

public class NonblankLinesWithLineNumbers {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a filename : ");
        String filename = scanner.nextLine();

        try (FileReader fr = new FileReader(filename);
                BufferedReader br = new BufferedReader(fr)) {
            String line = br.readLine();
            int lineno = 1;
            while (line != null) {
                if (line.trim().length() > 0) {
                    System.out.printf("%5d:%s\n", lineno, line);
                }
                line = br.readLine();
                lineno ++;
            }
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

14.Accept path from user and display list of files from the given path
import  java.io.*;
import  java.util.Scanner;

public class FileList
{
 public static void main(String args[])
 {
  Scanner s = new Scanner(System.in);
  System.out.println("Enter directory name :");
  String dir = s.nextLine();
  File path = new File(dir);
  if (! path.isDirectory())
  {
     System.out.println( dir + " is not a directory");
     return;
  }
  File list [] = path.listFiles();
  for ( File f : list)
  {
     if ( f.isDirectory())
      System.out.println(f.getName() + "\t" +  "[DIR]");
     else
      System.out.println( f.getName() + "\t" +  f.length());
  } // end of for loop 
 } // end of main
} // end of class 
    
15.Accept file name from user and display contents of file in reverse order- first line last.
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Scanner;
import java.util.Stack;

public class ReverseFile {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a filename : ");
        String filename = scanner.nextLine();


        Stack<String>  lines= new Stack();
        try (FileReader fr = new FileReader(filename);
                BufferedReader br = new BufferedReader(fr)) {
            String line = br.readLine();
            while (line != null) {
                lines.push(line);
                line = br.readLine();
            }

            // display stack
            while(! lines.isEmpty())
                System.out.println( lines.pop());
            
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}