Автор оригинала: Pankaj Kumar.
Простые программы на java хороши для оценки навыков программирования программиста. Вы найдете вопросы, связанные с кодированием, практически в любом интервью.
Идея этих программных вопросов состоит в том, чтобы изучить мыслительный процесс кандидата. В большинстве случаев первоначальное решение неэффективно, что требует дополнительных вопросов и выяснения, может ли собеседник улучшить его еще больше или нет.
Простые Программы на Java
Вот я предоставляю 10 простых программ на Java. Они хороши для практики кодирования и могут быть использованы в интервью. Пожалуйста, попробуйте написать решение самостоятельно, прежде чем смотреть на ответ, это придаст вам больше уверенности, и вы сможете проверить, хорошо ли ваше решение или нет. Обратите внимание, что решения могут быть улучшены в дальнейшем, поэтому, если у вас есть лучший подход, пожалуйста, сообщите нам об этом в комментариях.
Переверните строку
package com.journaldev.javaprograms;
public class JavaReverseString {
public static void main(String[] args) {
System.out.println(reverseString("abc"));
System.out.println(reverseString("123!@#098*"));
}
public static String reverseString(String in) {
if (in == null)
return null;
StringBuilder out = new StringBuilder();
int length = in.length();
for (int i = length - 1; i >= 0; i--) {
out.append(in.charAt(i));
}
return out.toString();
}
}
- Проверка Null, чтобы избежать Исключения NullPointerException .
- Использование
StringBuilderвместоStringBufferдля повышения производительности. - Создание локальной переменной для длины входной строки, вместо того, чтобы иметь ее в состоянии if. Чем меньше вызовов функций, тем выше производительность.
- Можно было бы улучшить, приняв вводимые пользователем данные, а не данные статического тестирования
Ряд Фибоначчи
package com.journaldev.javaprograms;
public class FibonacciSeries {
public static void main(String[] args) {
printFibonacciSeries(10);
}
public static void printFibonacciSeries(int count) {
int a = 0;
int b = 1;
int c = 1;
for (int i = 1; i <= count; i++) {
System.out.print(a + ", ");
a = b;
b = c;
c = a + b;
}
}
}
- Программа может быть улучшена путем ввода пользователем количества целых чисел для печати.
- Обратите внимание на использование функции
System.out.printдля печати чисел в одну строку, хорошая работа. - Числа Фибоначчи начинаются с 0 или 1, вышеуказанная программа может быть расширена, чтобы принимать вводимые пользователем данные в качестве отправной точки.
- Красиво написанная простая программа, приятно видеть, что нет необходимости в рекурсии или сложном кодировании.
Проверка простых чисел
package com.journaldev.javaprograms;
import java.util.Scanner;
public class CheckPrimeNumber {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Enter number to check for prime:");
int n = s.nextInt();
s.close();
checkPrime(n);
}
private static void checkPrime(int n) {
if (n == 0 || n == 1) {
System.out.println(n + " is not a prime number");
return;
}
if (n == 2) {
System.out.println(n + " is a prime number");
}
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) {
System.out.println(n + " is not a prime number");
return;
}
}
System.out.println(n + " is a prime number");
}
}
- Приятно видеть использование класса сканера для ввода данных пользователем.
- Обратите внимание на несколько проверок if для проверки чисел, где правила отличаются, т. е. 0,1 и 2. 0 и 1 не являются простыми числами, а 2-единственное четное простое число.
- Проверка деления выполняется только до
i/2, разумно мыслит и хорошо работает. - Метод завершится ошибкой в случае отрицательных целых чисел – либо сообщите пользователю, чтобы он ввел положительное целое число в основной метод, либо сделайте целое число положительным, а затем обработайте его.
Проверьте наличие строки палиндрома
package com.journaldev.javaprograms;
import java.util.Scanner;
public class PalindromeString {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Enter String to check for Palindrome:");
String str = s.next();
s.close();
checkPalindrome(str);
}
private static void checkPalindrome(String str) {
char[] charArray = str.toCharArray();
StringBuilder sb = new StringBuilder();
for (int i = charArray.length - 1; i >= 0; i--) {
sb.append(charArray[i]);
}
if (sb.toString().equalsIgnoreCase(str))
System.out.println(str + " is palindrome.");
else
System.out.println(str + " is not palindrome");
}
}
- Создайте новую строку в обратном порядке с помощью StringBuilder, а затем проверьте, совпадает ли ее значение с исходной строкой.
- Реализацию можно улучшить, сравнив символы с обоих концов. Если длина строки равна 5, то это палиндром, если символы в и. Нет необходимости создавать отдельную строку. Попробуйте написать код для этого и опубликуйте в разделе комментариев.
Сортировка массива программно
package com.journaldev.javaprograms;
import java.util.Arrays;
public class JavaArraySort {
public static void main(String[] args) {
int[] array = {2,1,5,3,4,6,7};
int[] sortedArray = bubbleSortAscending(array);
System.out.println(Arrays.toString(sortedArray));
}
public static int[] bubbleSortAscending(int[] arr){
int temp;
for(int i=0; i < arr.length-1; i++){
for(int j=1; j < arr.length-i; j++){
if(arr[j-1] > arr[j]){
temp=arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
//check that last index has highest value in first loop,
// second last index has second last highest value and so on
System.out.println("Array after "+(i+1)+"th iteration:"+Arrays.toString(arr));
}
return arr;
}
}
- Существует множество алгоритмов сортировки, пузырьковая сортировка проще в реализации.
- Сортировка сложна, и вы должны полагаться на методы Java API для сортировки коллекции или массива для повышения производительности, которые снова изобретают колесо.
- Также упомяните использование Сопоставимого и компаратора при сортировке, это добавит вам бонусные баллы.
Прочитайте 3 входные строки, объедините и распечатайте
package com.journaldev.javaprograms;
import java.util.Scanner;
public class ReadStringAndConcat {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter number of Strings to Concatenate:");
int n = scanner.nextInt();
String[] input = new String[n];
for(int i=0; iУдаление нечетных чисел из массива целых чисел
package com.journaldev.javaprograms;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class RemoveOddNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter comma separated numbers for input int array, for example '1,2,3,4'");
String input = scanner.next();
scanner.close();
//convert to int array
String[] inArray = input.split(",");
int [] intArray = new int[inArray.length];
int index = 0;
for(String s : inArray) {
intArray[index] = Integer.parseInt(s.trim());
index++;
}
//call a function to remove odd numbers
Integer[] result = removeOddNumbers(intArray);
System.out.println(Arrays.toString(result));
}
private static Integer[] removeOddNumbers(int[] intArray) {
//we will have to use list because we don't know exact size of the result array
List list = new ArrayList<>();
for(int i : intArray) {
if(i%2 == 0) list.add(i);
}
return list.toArray(new Integer[list.size()]);
}
}
Если вы читаете этот код, вы должны убедиться, что он соответствует всем пунктам, упомянутым выше. Попробуйте написать чистый и простой код, следуйте рекомендациям, соглашениям об именах методов и переменных, и у вас все получится.
Удалите все совпадающие элементы из списка
package com.journaldev.javaprograms;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class DeleteFromList {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter comma separated list of Strings. For example 'a,b,c,b,a'");
String input = scanner.next();
System.out.println("Enter String to remove from the input list.");
String strToDelete = scanner.next();
scanner.close();
List - Обратите внимание, что метод удаления создан для списка объектов, поэтому он будет работать с любым типом списка. Вот как мы пишем повторно используемый код.
- Использование итератора для удаления элемента из списка.
- Обрезка входных данных для удаления любых случайных пробелов из входных строк.
Среднее значение чисел с округлением наполовину и масштабом 2
package com.journaldev.javaprograms;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Scanner;
public class AverageOfNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter the total number of integers.");
int count = scanner.nextInt();
int sum = 0;
for (int i = 0; i < count; i++) {
System.out.println("Please enter number " + (i + 1) + ":");
sum += scanner.nextInt();
}
System.out.println("Sum=" + sum + ",Count=" + count);
BigDecimal average = new BigDecimal((double) sum / count);
average = average.setScale(2, RoundingMode.HALF_UP);
System.out.println("Average of entered numbers = " + average);
scanner.close();
}
}
Замена двух чисел
package com.journaldev.javaprograms;
import java.util.Scanner;
public class SwappingNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the first number:");
int first = scanner.nextInt();
System.out.println("Enter the second number:");
int second = scanner.nextInt();
scanner.close();
System.out.println("Initial value of numbers are: "+first+" and "+second);
first = first + second;
second = first -second;
first = first - second;
System.out.println("Value of numbers after swapping are: "+first+" and "+second);
}
}
Мы можем легко поменять местами числа, используя временную переменную. Но если вы можете обойтись без этого, то это потрясающе.
Это все для простых java-программ для интервью. Просмотрите их и попробуйте изучить лучшие способы написания кода и произвести впечатление на интервьюера.