2.4. Java Coding Practice
Dưới đây là các bài luyện tập với Java
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('@', '_'); } }
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));
}
}
}
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;
}
}
}
}
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);
}
}
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));
}
}
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());
}
}
}
}
Đư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));
}
}
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));
}
}
}
}
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));
}
}
}
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());
}
}
}
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;
}
}
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()+" ");
}
}
}
}
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;
}
}
Đả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));
}
}
}
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?