⌨️2.4. Java Coding Practice

Dưới đây là các bài luyện tập với Java

  1. Thay đổi ký tự đặc biệt trong 1 chuỗi cho trước:

       public class ChangeSpecialCharacter{
            public static void main (String[] args){
                String str = "Hello @Japneet";
                System.out.print(printDifferentSpeicalCharacter(str));
            }
        
            private static String printDifferentSpeicalCharacter(String str){
                return str.replace('@', '_');
            }
        }

  2. Lấy 4 ký tự cuối cùng của một chuỗi cho trước

public class ExtractLast4CharactersOfString{
    public static void main (String[] args){
        String str = "swiss";
        printLast4Chars(str);
    }

    private static void printLast4Chars(String str){
        int size = str.length();
        int counter = size-4;
        for(int i = counter; i<size; i++)
        {
            System.out.print(str.charAt(i));
        }
    }
}
  1. Tìm ký tự không lặp lại đầu tiên của một chuối

import java.util.HashMap;
import java.util.Map;

public class FindFirstNonRepeatedCharacter{
    public static void main (String [] args){
        String str = "swiss";
        findNonRepeatingCharacter(str);
    }

    private static void findNonRepeatingCharacter(String str){
        Map<Character,Integer> map = new HashMap<>();
        int counter =1;

        for(int i=0; i<str.length(); i++){
            if(map.containsKey(str.charAt(i))){
                map.put(str.charAt(i), map.get(str.charAt(i))+1);
            }else{
                map.put(str.charAt(i),counter);
            }
        }

        for(Map.Entry<Character,Integer> entryMap: map.entrySet()){
            if(entryMap.getValue()==1){
                System.out.print(entryMap.getKey());
                break;
            }
        }
    }
}
  1. Tìm sô lớn nhất và lớn thứ 2 của một mảng

public class FindLargestSmallestAnd2ndLargest{
    public static void main (String[] args){
        int [] arr = {23,5,1,89,65,0,23,432,1};
        printLargest2ndLargestAndSmallest(arr);
    }

    private static void printLargest2ndLargestAndSmallest(int [] arr){
        int lengthOfArray = arr.length;
        int largest = arr[0];
        int smallest = arr[0];
        int secondLargest = arr[0];

        for(int i=0; i<lengthOfArray; i++){
            if(arr[i]>largest)
{
                secondLargest = largest;
                largest = arr[i];
            }else if (arr[i] < smallest){
                smallest = arr[i];
            }
            //System.out.println(largest+" "+secondLargest+" "+" "+smallest);
        }
        System.out.print(largest+" "+secondLargest+" "+" "+smallest);
    }

}
  1. Tìm độ lệch lớn nhất giữa 2 phần tử trong một mảng:

public class FindMaximumDifference {
    public static void main (String [] args){
        int [] arr = {10,90,2,40,1,25};
        printMaximumDifference(arr);
    }

    private static void printMaximumDifference(int [] arr){
        //Approach find greatest and smallest number in java and then subtract it.
        int max = arr[0];
        int min = arr[0];

        for(int i=0; i<arr.length; i++){
            if(arr[i] > max){
                max = arr[i];
            }else if (arr[i] < min){
                min = arr[i];
            }
        }
        System.out.print("Max Difference is: "+ (max-min));
    }
}
  1. Tìm vị trí của các số lặp lại trong mảng:

import java.util.HashMap;
import java.util.Map;

public class FindRepeatingElements{
    public static void main (String[] args){
        int [] arr = {4,2,3,5,1,2,4};
        printRepeatingElements(arr);
    }

    private static void printRepeatingElements(int[] arr){
        Map<Integer, Integer> map = new HashMap<>();

        for(int i = 0; i<arr.length; i++){
            Integer mapValue = map.get(arr[i]);

            if(mapValue==null){
                map.put(arr[i], 1);
            }
            else{
                map.put(arr[i], mapValue+1);
            }
        }

        System.out.println(map);
        //Now we need to retrieve only keys which are greater than value = 1
        for(Map.Entry<Integer, Integer> mapEntry : map.entrySet()){
            if(mapEntry.getValue()>1){
                System.out.println("Key: "+mapEntry.getKey()+" Value:"+mapEntry.getValue());
            }
        }
    }
}
  1. Đưa các số âm trong mảng lên đầu:

import java.util.Arrays;

public class MoveNegativeNumbersToStart{
    public static void main (String [] args){
        int [] arr = {-1,2,3,-4,-7,8};
        moveNegativeNumbersTOStart(arr);
    }

    private static void moveNegativeNumbersTOStart(int [] arr) {
        int[] tempArr = new int[arr.length];
        int counter = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < 0) {
                //System.out.print(arr[i]);
                tempArr[counter] = arr[i];
                counter++;
            }
        }

        for (int i = 0; i < arr.length; i++){
            if(arr[i]>0){
                tempArr[counter] = arr[i];
                counter++;
            }
        }
        System.out.print(Arrays.toString(tempArr));
    }
}
  1. Tìm các chuổi con trong 1 chuổi cho trước:

public class PrintAllTheSubstrings
{
    public static void main (String [] args){
        String str = "abc";
        printSubstrings(str);
    }

    private static void printSubstrings(String str){
        for(int i=0; i<str.length(); i++){
            for (int j=i+1; j<=str.length(); j++){
                System.out.println(str.substring(i,j));
            }
        }
    }
}
  1. In ra ký tự đầu tiên của mỗi từ trong một câu:

public class PrintFirstLetterOfString{
    public static void main (String[] args){
        String str = "Hello I am Japneet";
        returnFirstAlphabet(str);
    }

    private static void returnFirstAlphabet(String string){
        String word = "";
        String [] split = string.split(" ");

        for(int i=0; i<split.length; i++){
            word = split[i];
            System.out.print(word.charAt(0));
        }
    }
}
  1. In số lượng nguyên âm xuất hiện trong một chuỗi:

import java.util.HashMap;
import java.util.Map;

public class PrintWordsVowelsFrequencyofeachCaracter{
    public static void main (String [] args){
        String str =    "Learn with Japneet Sachdeva";
        printAllCharacters(str);
    }

    private static void printAllCharacters(String str){
        //TODO: WordCount
        String [] strArray = str.split(" ");
        int wordCount = strArray.length;
        System.out.println(wordCount);

        //TODO: Print Vowels
        int vowelCount = 0;
        for(int i=0; i<str.length(); i++){
            if(str.charAt(i) == 'a' || str.charAt(i) == 'A' || str.charAt(i) == 'e' || str.charAt(i) == 'E' || str.charAt(i) == 'i'
            || str.charAt(i) == 'I' || str.charAt(i) == 'o' || str.charAt(i) == 'O' || str.charAt(i) == 'u' || str.charAt(i) == 'U')
            {
                vowelCount++;
            }
        }

        System.out.println("Vowel count is: "+vowelCount);

        //Todo: Frequency of each character
        Map<Character, Integer> freqMap = new HashMap<>();

        for(int i =0; i<str.length(); i++){
            if(freqMap.containsKey(str.charAt(i))){
                freqMap.put(str.charAt(i), freqMap.get(str.charAt(i))+1);
            }else{
                freqMap.put(str.charAt(i),1);
            }
        }

        for(Map.Entry<Character, Integer> entry: freqMap.entrySet()){
            System.out.print(" Character: "+entry.getKey()+ " Frequency: "+entry.getValue());
        }
    }
}
  1. Xóa các ký tự đặc biệt

public class RemoveAllSpecialCharacters{
    public static void main (String[] args){
        String str = "Hello^^%#$(!)_+ J@apneet";
        System.out.print(removeSpecialCharacters(str));
    }

    private static String removeSpecialCharacters(String str){
        String newStr = str.replaceAll("[%^#$()!_+@]", "");
        return newStr;
    }

}
  1. Xóa các từ trùng lặp trong một câu:

import java.util.HashMap;
import java.util.Map;

public class RemoveDuplicateWordsFromSentence{
    public static void main (String [] args){
        String str = "Hello I am Japneet Japneet am";
        printSentenceWithoutDuplicates(str);
    }

    private static void printSentenceWithoutDuplicates(String str){
        String [] strSplit = str.split("\\s");
        Map<String, Integer> map = new HashMap<>();
        int counter = 1;

        for(int i=0; i<strSplit.length; i++){
            if(map.containsKey(strSplit[i])){
                map.put(strSplit[i], map.get(strSplit[i])+1);
            }else{
                map.put(strSplit[i], counter);
            }
        }

        for(Map.Entry<String,Integer> entryMap: map.entrySet()){
            if(entryMap.getValue()>1){
                System.out.print(entryMap.getKey()+" ");
            }
        }
    }
}
  1. Xóa khoảng trắng trong một câu:

public class RemoveWhiteSpaces{
    public static void main (String[] args){
        String str = "         Hello              Japne     et         ";
        System.out.print(removeWhiteSpace(str));
    }

    private static String removeWhiteSpace(String str){
        String newStr = str.replaceAll("\\s", "");
        return newStr;
    }
}
  1. Đảo một chuỗi:

public class ReverseString{
    public static void main (String[] args){
        String str = "Hello World";
        printReverseofString(str);
    }

    private static void printReverseofString (String str){
        for(int i = str.length()-1; i>=0; i--){
            System.out.print(str.charAt(i));
        }
    }
}
  1. game co caro

package org.example;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        String[] row1 = new String[] {" ","|"," ","|"," "}; // 0 2 4
        String[] row2 = new String[] {"-","+","-","+","-"}; // 0 2 4
        String[] row3 = new String[] {" ","|"," ","|"," "}; // 0 2 4
        String[] row4 = new String[] {"-","+","-","+","-"}; // 0 2 4
        String[] row5 = new String[] {" ","|"," ","|"," "}; // 0 2 4

        List<int[]> win = new ArrayList<>();
        win.add(new int[]{1, 2, 3});
        win.add(new int[]{4, 5, 6});
        win.add(new int[]{7, 8, 9});
        win.add(new int[]{1, 4, 7});
        win.add(new int[]{2, 5, 8});
        win.add(new int[]{3, 6, 9});
        win.add(new int[]{1, 5, 9});
        win.add(new int[]{3, 5, 7});

        List<Integer> playerChosen = new ArrayList<>();
        List<Integer> computerChosen = new ArrayList<>();

        List<String[]> table = List.of(row1,row2,row3,row4,row5);
        Scanner myObj = new Scanner(System.in);  // Create a Scanner object
        System.out.println("Please select from 1-9");
        for(int i =0; i<3;i++){
            int userSelect = myObj.nextInt();
            while (playerChosen.contains(userSelect) || computerChosen.contains(userSelect)){
                System.out.println("Please select other index");
                userSelect = myObj.nextInt();
            }
            playerChosen.add(userSelect);
            selectPoint(table,userSelect,"X");
            printTable(table);

            int computerSelect = getRandomNumber(1,9);
            while (playerChosen.contains(computerSelect) || computerChosen.contains(computerSelect)){
                computerSelect = getRandomNumber(1,9);
            }
            computerChosen.add(computerSelect);
            selectPoint(table,computerSelect,"O");
            printTable(table);
        }
        outer:
        for(int[] row: win){
            for(int i: row){
                if(playerChosen.contains(i)){
                    System.out.println("You Win!!");
                    break outer;
                }
                if (computerChosen.contains(i)){
                    System.out.println("You Lose! :(");
                    break outer;
                }
            }
        }
    }
    public static void printTable(List<String[]> table){
        for(String[] row : table){
            for(String ch: row){
                System.out.print(ch);
            }
            System.out.println();
        }
    }
    public static void selectPoint(List<String[]> table, int select,String player){
        switch (select){
            case 1: {
                table.get(0)[0]=player;
                break;
            }
            case 2: {
                table.get(0)[2]=player;
                break;
            }
            case 3: {
                table.get(0)[4]=player;
                break;
            }
            case 4: {
                table.get(2)[0]=player;
                break;
            }
            case 5: {
                table.get(2)[2]=player;
                break;
            }
            case 6: {
                table.get(2)[4]=player;
                break;
            }
            case 7: {
                table.get(4)[0]=player;
                break;
            }
            case 8: {
                table.get(4)[2]=player;
                break;
            }
            case 9: {
                table.get(4)[4]="X";
                break;
            }
            default:break;
        }
    }
    private static int getRandomNumber(int min, int max) {
        return (int) ((Math.random() * (max - min)) + min);
    }
}

Last updated

Was this helpful?