Java数组操作实例详解:从基础到进阶

本篇教程将带你深入学习Java数组的操作,从简单的数组填充、复制到更复杂的排序、去重,以及经典的猜单词游戏Hangman的Java实现,由浅入深,帮助你掌握Java数组操作的精髓。

1. 数组初始化与复制

本例将创建一个包含5个元素的双精度浮点型数组,使用fill()函数将其初始化,然后使用copyof()函数复制该数组,并允许用户通过键盘输入为新数组赋值。最后,程序将计算并输出新数组的最大值和平均值。javaimport java.util.Arrays;import java.util.Scanner;

public class ArrayInitialization { public static void main(String[] args) { double[] arr = new double[5]; Arrays.fill(arr, 0.0); // 使用fill()函数将数组元素初始化为0.0 double[] newArr = Arrays.copyOf(arr, arr.length); // 复制数组 Scanner scanner = new Scanner(System.in); System.out.println('请输入新数组的元素值:'); for (int i = 0; i < newArr.length; i++) { newArr[i] = scanner.nextDouble(); } // 求最大值 double max = newArr[0]; for (int i = 1; i < newArr.length; i++) { if (newArr[i] > max) { max = newArr[i]; } } // 求平均值 double sum = 0.0; for (double num : newArr) { sum += num; } double average = sum / newArr.length; System.out.println('新数组的最大值为:' + max); System.out.println('新数组的平均值为:' + average); }}

2. 字符串数组排序

本例将演示如何对一个字符串数组按照字典顺序进行排序。javaimport java.util.Arrays;

public class StringArraySorting { public static void main(String[] args) { String[] str = {'vanilla', 'chocolate', 'coconut', 'mango', 'apple'}; Arrays.sort(str); // 对字符串数组进行排序 System.out.println('排序后的字符串数组:'); for (String s : str) { System.out.println(s); } }}

3. 字符串分割

本例将一个包含特殊字符的字符串分割成多个字符串,并将结果存储在一个字符串数组中。javapublic class StringSplitting { public static void main(String[] args) { String str = 'Monday@Tuesday|,Wednesday@+Thursday:,Friday'; // 将特殊字符替换为换行符 str = str.replaceAll('[@|,+]', ' '); // 将处理后的字符串以换行符分割为字符串数组 String[] strArray = str.split(' '); // 输出结果 for (String s : strArray) { System.out.println(s); } }}

4. 数组去重

本例将读取用户输入的十个数字,找出其中的不重复数字,并输出不重复数字的个数以及这些数字。javaimport java.util.Scanner;

public class DistinctNumbers { public static void main(String[] args) { int[] numbers = new int[10]; int count = 0; // 记录不重复数字的个数 Scanner scanner = new Scanner(System.in); System.out.println('请输入十个数字:'); for (int i = 0; i < numbers.length; i++) { int num = scanner.nextInt(); // 判断数字是否已经存在于数组中 boolean isDistinct = true; for (int j = 0; j < count; j++) { if (num == numbers[j]) { isDistinct = false; break; } } // 如果数字不重复,则存入数组中 if (isDistinct) { numbers[count] = num; count++; } } System.out.println('不重复数字的个数为:' + count); System.out.print('不重复数字为:'); for (int i = 0; i < count; i++) { System.out.print(numbers[i] + ' '); } }}

5. 猜单词游戏 Hangman

本例将使用Java实现经典的猜单词游戏 Hangman。程序将随机生成一个单词,玩家需要逐个字母地猜测。javaimport java.util.Scanner;

public class Hangman { public static void main(String[] args) { String[] words = {'write', 'that', 'java', 'array', 'programming'}; Scanner scanner = new Scanner(System.in); String playAgain; do { String word = getRandomWord(words); // 随机选择一个单词 char[] hiddenWord = new char[word.length()]; for (int i = 0; i < hiddenWord.length; i++) { hiddenWord[i] = ''; } int misses = 0; while (true) { System.out.print('(Guess) Enter a letter in word ' + String.valueOf(hiddenWord) + ' > '); char guess = scanner.nextLine().charAt(0); if (!isAlreadyGuessed(hiddenWord, guess)) { if (isCorrectGuess(word, hiddenWord, guess)) { if (isWordGuessed(hiddenWord)) { System.out.println('The word is ' + word + '. You missed ' + misses + ' times.'); break; } } else { misses++; } } else { System.out.println(guess + ' is already in the word.'); } } System.out.print('Do you want to guess another word? Enter y or n > '); playAgain = scanner.nextLine(); } while (playAgain.equalsIgnoreCase('y')); } // 随机选择一个单词 public static String getRandomWord(String[] words) { int index = (int)(Math.random() * words.length); return words[index]; } // 判断字母是否已经猜测过 public static boolean isAlreadyGuessed(char[] hiddenWord, char guess) { for (char c : hiddenWord) { if (c == guess) { return true; } } return false; } // 判断猜测的字母是否正确 public static boolean isCorrectGuess(String word, char[] hiddenWord, char guess) { boolean isCorrect = false; for (int i = 0; i < word.length(); i++) { if (word.charAt(i) == guess) { hiddenWord[i] = guess; isCorrect = true; } } return isCorrect; } // 判断单词是否已经全部猜测出来 public static boolean isWordGuessed(char[] hiddenWord) { for (char c : hiddenWord) { if (c == '') { return false; } } return true; }}

希望本教程能够帮助你更好地理解和应用Java数组操作。 Happy coding!

Java数组操作:填充、复制、排序、去重等

原文地址: https://www.cveoy.top/t/topic/kMH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录