Java-массив
Массив представляет собой набор данных одного и того же типа. Java в основном поддерживает массивы. Каждая базовая единица одномерного массива представляет собой данные базового типа данных. Двумерный массив означает, что каждая базовая единица представляет собой одно измерение. одномерный массив и т. д. Каждая базовая единица n-мерного массива представляет собой n-1-мерный массив из n-1 массивов. Ниже в качестве примера используется одномерный массив, иллюстрирующий использование массивов Java.
1. Объявление массива
Объявления массивов имеют следующие две формы (расположение квадратных скобок различно):
int arr[];int[] arr2;
2. Инициализация массива
Существует также две формы инициализации массива, а именно (с использованием new или без использования new):
int arr[] = новый int[]{1, 3, 5, 7, 9}; int[] arr2 = {2, 4, 6, 8, 10};
3. Обход массива
Вы можете использовать for/foreach для перемещения по массиву следующим образом:
public static void main(String[] args) { int arr[] = new int[]{1, 3, 5, 7,9} int [] arr2 = {2, 4, 6, 8, 10}; (int i = 0; i < arr.length; ++i) { System.out.print(arr[i] + "/t"); // 1 3 5 7 9); } for (int x: arr2) { System.out.print(x + "/t" // 2 4 6 8 10 } };
4. Arrays.fill() заполняет массив.
Чтобы использовать статические методы класса Arrays, вам необходимо импортировать пакет java.util.Arrays, который определяет множество перегруженных методов.
void fill(int[] a, int val) заполнить все
void fill(int[] a, int fromIndex, int toIndex, int val) заполняет элемент по указанному индексу
int[] arr3 = new int[5]; for (int x: arr3) { System.out.print(x + "/t"); // 0 0 0 0 0 Все инициализировано значением 0 } System.out.println; (); Arrays.fill(arr3, 10); for (int x: arr3) { System.out.print(x + "/t"); 10 10 Заполните все до 10 } System.out.println(); Arrays.fill(arr3, 1, 3, 8 for (int x: arr3) { System.out.print(x + "/t"); // 10 8 8 10 10 Заполняем указанный индекс } System.out.println();
5. Arrays.sort() сортирует массив.
void sort(int[] a) отсортировать все
void sort(int[] a, int fromIndex, int toIndex) сортирует элементы по указанному индексу
int[] arr4 = {3, 7, 2, 1, 9}; Arrays.sort(arr4); for (int x: arr4) { System.out.print(x + "/t"); 3 7 9 } System.out.println() int[] arr5 = {3, 7, 2, 1, 9}; 1, 3); for (int x: arr5) { System.out.print(x + "/t" // 3 2 7 1 9 } System.out.println();
6. Arrays.copyOf() копирует массив.
int[] copyOf(int[] original, int newLength) копирует массив и указывает новую длину массива
int[] copyOfRange(int[] original, int from, int to) копирует массив, указывая индекс скопированного исходного массива
int[] arr6 = {1, 2, 3, 4, 5}; int[] arr7 = Arrays.copyOf(arr6, 5); // 1 2 3 4 5 int[] arr8 = Arrays.copyOfRange(arr6, 1); , 3); // 2 3 for (int x: arr7) { System.out.print(x + "/t"); } System.out.println(); for (int x: arr8) { System.out.print(x + "/t" } System.out.println();
Java-строка
Тип строки Java — это класс String. Ниже описано, как работать со строками.
1. Конкатенация строк
Для объединения строк используется символ «+», как в следующем примере:
String s = new String("Hello"); String s2 = new String("World"); System.out.println(s + " " + s2);
2. Получить длину строки
Чтобы получить длину строки, используйте str.length(), как в следующем примере:
String s3 = new String("Привет, Java"); System.out.println(s3.length()); // 10
3. Получить индекс указанной строки
Чтобы получить индекс указанной строки, используйте str.indexOf(substr), str.lastIndexOf(substr), как показано в следующем примере:
String s4 = new String("как дела"); System.out.println(s4.indexOf("o")); // 1 Найдите System.out.println(s4.lastIndexOf("o")) из начало ; // 9 Поиск с конца
4. Получить символ по указанному индексу
Чтобы получить символ по указанному индексу, используйте str.charAt(index), как в следующем примере:
String s5 = new String("Привет, Java"); System.out.println(s5.charAt(4)); // o
5. Удалите пробелы из строк
Существует множество способов удаления пробелов в строке. Используйте str.trim() или str.replaceAll(regex, replace). Вы также можете использовать класс StringTokenizer для разделения строк пробелами. Вам необходимо импортировать пакет java.util. StringTokenizer перед использованием, следующий пример:
String s6 = new String(" Hello Java "); String s7 = s6.trim(); // Удаляем пробелы в начале и конце строки String s8 = s6.replaceAll(" ", ""); символы Все пробелы в строке StringTokenizer st = new StringTokenizer(s6, " " // Используйте пробелы для разделения строк StringBuffer sb = new StringBuffer(); (st.hasMoreTokens()) { sb.append(st.nextToken() } System.out.println("/"" + s6 + "/"" + "length = " + s6.length()); // "Привет, Java" length = 14 System.out.println("/"" + s7 + "/"" + "length = " + s7.length()); // "Привет, Java" Java"length = 10 System.out.println("/"" + s8 + "/"" + "length = " + s8.length()); // "HelloJava"length = 9 System.out.println(" /"" + sb.toString() + "/"" + "length = " + sb.toString().length()); // длина "HelloJava" = 9
6. Заменить строку
Строка замены может заменить все подстроки или первую подстроку, как показано в следующем примере:
String sr = new String("abc abd bcd"); String sr2 = sr.replace("ab", "xx"); // Заменяем все подстроки String sr3 = sr.replaceFirst("ab", "xx"); // Заменяем первую строку System.out.println(sr2); // "xxc xxd bcd" System.out.println(sr3); // "xxc adb bcd"
7. Строгое суждение
Существует множество ситуаций для равенства строк, таких как равенство содержимого строки, необходимость игнорировать регистр, равенство адресов памяти, оценка начала или конца строки и т. д., как показано ниже:
String se = new String("Лето такое жаркое"); String se1 = new String("Лето такое жаркое"); String se2 = new String("Лето такое жаркое"); .println(se == se1); // false сравнивает память вместо содержимого строки System.out.println(se == se3); // true System.out.println(se.equals(se1)); Сравнить содержимое строки System.out.println(se.equals(se2)); // false System.out.println(se.equalsIgnoreCase(se2)); // true игнорировать регистр System.out.println(se2.startsWith (") Summer"); // true запускает строку System.out.println(se2.endsWith("cold")); // false завершает строку
8. Преобразование регистра строк
Примеры преобразования регистра строк следующие:
String sc = new String("hello WORLD"); String scl = sc.toLowerCase(); // hello world преобразуется в нижний регистр String scu = sc.toUpperCase(); // HELLO WORLD преобразуется в верхний регистр System.out. println( SCL + " " + SCU);
9. Разделение струн
Разделители строк следующие:
String ss = new String("abc,def,g,h"); String[] ss2 = ss.split(","); // Разделяем запятыми for (String x: ss2) { System.out.print( x + "/t"); // abc def gh }
10. Строка формата
Существует множество форм форматирования строк, например форматирование даты, форматирование времени, десятичное преобразование и т. д. Для использования класса Date требуется пакет импорта java.util.Date, как показано в следующем примере:
Date d = new Date(); System.out.println(d); // Ср, 22 июля 16:00:36 CST 2015 Формат по умолчанию System.out.println(String.format("%tm", d)); // 07 двузначный месяц System.out.println(String.format("%tH", d)); // 16 Двузначный 24-часовой формат system.out.println(String.format("%x", 256) // 100 шестнадцатеричный
11. Сравнение классов String, StringBuffer и StringBuilder.
String: строковая константа, неизменяемый объект. При изменении содержимого переменной фактически генерируется новый объект String. Когда содержимое переменной изменяется несколько раз и часто, это оказывает влияние на производительность системы, особенно заставляя сборщик мусора начать работать. ., скорость программы станет очень низкой.
StringBuffer: строковая переменная, потокобезопасная. При изменении содержимого переменной фактически используется тот же объект, и эффективность выше, чем у типа String.
StringBuilder: строковая переменная, совместимая с StringBuffer, но не потокобезопасная. Если она однопоточная, сначала используйте StringBuilder, она быстрее, чем StringBuffer.