Воробьёва Валерия Владимировна
1678769880
В этом руководстве по Java мы узнаем, как проверить, являются ли две строки Java анаграммами или нет.
Инверсия — это слово или фраза, созданная путем расположения букв другого слова или фразы в другом порядке. В этой статье мы обсудим различные методы проверки того, являются ли две заданные строки Java анаграммами или нет.
Итак, без лишних слов, изучите эти методы.
Когда все символы в двух строках имеют одинаковую частоту, мы говорим, что две строки являются инверсными. Например:
Здесь, в приведенных выше примерах, мы видим, что две строки имеют одинаковое количество символов, и частота появления каждого символа в двух строках также одинакова. Поэтому мы говорим, что две строки являются анаграммами друг друга.
В приведенной ниже программе мы получаем ввод String от пользователя с помощью метода nextLine() класса Scanner. Символы в этих строках преобразуются в нижний регистр с помощью метода toLowerCase() класса String. Затем эти строки преобразуются в массивы символов с помощью метода toCharArray() класса String. Мы создаем метод isAnagram(), который принимает в качестве аргументов два массива символов. В этом методе мы сначала проверяем, одинаковы ли размеры двух массивов, затем возвращаем false, в противном случае продолжаем работу в программе. Итерировать по длине строки, чтобы проверить каждый индекс массива символов; если символы в обоих массивах не совпадают, возвращается false. Если все ложные условия не выполнены, метод возвращает true.
Код:
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static boolean isAnagram(char[] first,char[] second) {
//checking length of first string is not equal to second string then return false
if(first.length!=second.length) {
return false;
}
//check character in first string is not equal to character in second string then return false
for(int i=0;i<first.length;i++) {
if(first[i]!=second[i]) {
return false;
}
}
// return true when all characters in both strings are same
return true;
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter first String:");
//input first string
String first_string=sc.nextLine();
System.out.println("Enter second String:");
//input second string
String second_string=sc.nextLine();
//convert first string into lower case
first_string=first_string.toLowerCase();
//convert second string into lower case
second_string=second_string.toLowerCase();
//convert first string into char array
char[] first_array=first_string.toCharArray();
//convert second string into char array
char[] second_array=second_string.toCharArray();
//sort first array
Arrays.sort(first_array);
//sort second array
Arrays.sort(second_array);
//calling isAnagram boolean function
if(isAnagram(first_array,second_array)) {
System.out.println("Two Strings are Anagrams");
}else {
System.out.println("Two Strings are not Anagrams");
}
}
}
Выход:
В приведенной ниже программе мы получаем ввод String от пользователя с помощью метода nextLine() класса Scanner. Символы в этих строках преобразуются в нижний регистр с помощью метода toLowerCase() класса String. Затем эти строки преобразуются в массивы символов с помощью метода toCharArray() класса String. Мы создаем метод isAnagram(), который принимает в качестве аргументов два массива символов. В этом методе мы сначала проверяем, одинаковы ли размеры двух массивов, затем возвращаем false, в противном случае продолжаем работу в программе. Мы создаем две матрицы целочисленных частот. Матрица 1 частот счета хранит частоту каждого символа в матрице первого символа, а матрица 2 частоты счета хранит частоту каждого символа во второй матрице символов. Сразу, повторить 256 раз, чтобы убедиться, что частота символов в обеих матрицах частот одинакова, и вернуть false. Если все ложные условия не выполнены, метод вернет true, что означает, что строки являются обратными.
Код:
import java.util.Scanner;
public class Main{
public static boolean isAnagram(char[] first,char[] second) {
//checking length of first string is not equal to second string then return false
if(first.length!=second.length) {
return false;
}
int[] count1=new int[256];
int[] count2=new int[256];
for(char c:first) {
int v=(int)c;
count1[v]++;
}
for(char c:second) {
int v=(int)c;
count2[v]++;
}
for(int i=0;i<256;i++) {
if(count1[i]!=count2[i]) {
return false;
}
}
return true;
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter first String:");
//input first string
String first_string=sc.nextLine();
System.out.println("Enter second String:");
//input second string
String second_string=sc.nextLine();
//convert first string into lower case
first_string=first_string.toLowerCase();
//convert second string into lower case
second_string=second_string.toLowerCase();
//convert first string into char array
char[] first_array=first_string.toCharArray();
//convert second string into char array
char[] second_array=second_string.toCharArray();
//calling isAnagram boolean function
if(isAnagram(first_array,second_array)) {
System.out.println("Two Strings are Anagrams");
}else {
System.out.println("Two Strings are not Anagrams");
}
}
}
Выход
В приведенной ниже программе мы применяем ту же логику, что и в программе выше, но изменение заключается в том, что вместо двух частотных матриц мы используем одну частотную матрицу. Основная логика программы заключается в том, что в частоте счета массива сначала увеличивается номер первого массива символов, а затем уменьшается номер второго массива символов. Посмотрите на код для лучшего понимания.
Код:
import java.util.Scanner;
public class Main{
public static boolean isAnagram(char[] first,char[] second) {
//checking length of first string is not equal to second string then return false
if(first.length!=second.length) {
return false;
}
//Frequency array of size 256 and
int[] count=new int[256];
for(int i=0;i<first.length;i++) {
//increment of chracter count in frequency array count
count[first[i]]++;
//decrement of same character count in frequency array count
count[second[i]]--;
}
//Loop for 256 times to check the frequency count of character in frequency array
//If frequency count is not equal to zero then return false
for(int i=0;i<256;i++) {
if(count[i]!=0) {
return false;
}
}
// return true when all characters in both strings are same
return true;
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter first String:");
//input first string
String first_string=sc.nextLine();
System.out.println("Enter second String:");
//input second string
String second_string=sc.nextLine();
//convert first string into lower case
first_string=first_string.toLowerCase();
//convert second string into lower case
second_string=second_string.toLowerCase();
//convert first string into char array
char[] first_array=first_string.toCharArray();
//convert second string into char array
char[] second_array=second_string.toCharArray();
//calling isAnagram boolean function
if(isAnagram(first_array,second_array)) {
System.out.println("Two Strings are Anagrams");
}else {
System.out.println("Two Strings are not Anagrams");
}
}
}
Выход
В приведенной ниже программе мы используем HashMap с символом в качестве ключа и целым числом в качестве значения. Во-первых, мы сначала перебираем длину массива символов и проверяем, присутствует ли ключ, затем увеличиваем количество символов, а если его нет в карте, устанавливаем количество символов равным 1. Во-вторых, мы перебираем длину второго массива символов и проверяем наличие ключа, затем уменьшаем количество символов и возвращаем false, если ключа нет. Если не выполняются все ложные условия, метод isAnagram() возвращает true, что означает, что строки являются анаграммами.
Код:
import java.util.*;
public class Main{
public static boolean isAnagram(char[] first,char[] second) {
//checking length of first string is not equal to second string then return false
if(first.length!=second.length) {
return false;
}
//creating HashMap with Character as key and Integer as value
HashMap<Character,Integer> map=new HashMap<>();
//Loop in char array first
//put value 1 for character not present in hashmap
//Increment value if character is present
for(int i=0;i<first.length;i++) {
if(map.containsKey(first[i])) {
map.put(first[i], map.get(first[i])+1);
}else {
map.put(first[i], 1);
}
}
//Loop in char array second
//return false if character is not present in hashmap
//Decrement value if character is present
for(int i=0;i<second.length;i++) {
if(map.containsKey(second[i])){
map.put(second[i], map.get(second[i])-1);
}else {
return false;
}
}
//extract all keys of map
Set<Character> keys=map.keySet();
// for each key check value
//return false if value is not equal to 0
for(Character key:keys) {
if(map.get(key)!=0) {
return false;
}
}
// return true when all characters in both strings are same
return true;
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter first String:");
//input first string
String first_string=sc.nextLine();
System.out.println("Enter second String:");
//input second string
String second_string=sc.nextLine();
//convert first string into lower case
first_string=first_string.toLowerCase();
//convert second string into lower case
second_string=second_string.toLowerCase();
//convert first string into char array
char[] first_array=first_string.toCharArray();
//convert second string into char array
char[] second_array=second_string.toCharArray();
//calling isAnagram boolean function
if(isAnagram(first_array,second_array)) {
System.out.println("Two Strings are Anagrams");
}else {
System.out.println("Two Strings are not Anagrams");
}
}
}
Выход
В этой статье мы обсудили различные методы проверки того, являются ли две строки в java анаграммами или нет.
Источник: https://www.naukri.com
1600135200
OpenJDk or Open Java Development Kit is a free, open-source framework of the Java Platform, Standard Edition (or Java SE). It contains the virtual machine, the Java Class Library, and the Java compiler. The difference between the Oracle OpenJDK and Oracle JDK is that OpenJDK is a source code reference point for the open-source model. Simultaneously, the Oracle JDK is a continuation or advanced model of the OpenJDK, which is not open source and requires a license to use.
In this article, we will be installing OpenJDK on Centos 8.
#tutorials #alternatives #centos #centos 8 #configuration #dnf #frameworks #java #java development kit #java ee #java environment variables #java framework #java jdk #java jre #java platform #java sdk #java se #jdk #jre #open java development kit #open source #openjdk #openjdk 11 #openjdk 8 #openjdk runtime environment
1620458875
According to some surveys, such as JetBrains’s great survey, Java 8 is currently the most used version of Java, despite being a 2014 release.
What you are reading is one in a series of articles titled ‘Going beyond Java 8,’ inspired by the contents of my book, Java for Aliens. These articles will guide you step-by-step through the most important features introduced to the language, starting from version 9. The aim is to make you aware of how important it is to move forward from Java 8, explaining the enormous advantages that the latest versions of the language offer.
In this article, we will talk about the most important new feature introduced with Java 10. Officially called local variable type inference, this feature is better known as the **introduction of the word **var
. Despite the complicated name, it is actually quite a simple feature to use. However, some observations need to be made before we can see the impact that the introduction of the word var
has on other pre-existing characteristics.
#java #java 11 #java 10 #java 12 #var #java 14 #java 13 #java 15 #verbosity
1620462686
On March 16th, 2021, Java 16 was GA. With this new release, tons of new exciting features have been added. Check out the release notes to know more about these changes in detail. This article’s focus will be on Java Records, which got delivered with JEP 395. Records were first introduced in JDK 14 as a preview feature proposed by JEP 359, and with JDK 15, they remained in preview with JEP 384. However, with JDK 16, Records are no longer in preview.
I have picked Records because they are definitely the most favored feature added in Java 16, according to this Twitter poll by Java Champion Mala Gupta.
I also conducted a similar survey, but it was focused on features from Java 8 onwards. The results were not unexpected, as Java 8 is still widely used. Very unfortunate, though, as tons of new features and improvements are added to newer Java versions. But in terms of features, Java 8 was definitely a game-changer from a developer perspective.
So let’s discuss what the fuss is about Java Records.
#java #springboot #java programming #records #java tutorials #java programmer #java records #java 16
1602637135
Java is not the hardest language to start with. So, it becomes way popular among novice developers joining the ranks of Java coders every single day. If you are reading this blog post, you might be interested in learning Java.
Java is widely used across industry, and especially in the area of Enterprise software, which results in many high paying job opportunities and makes this programming language a common language for newbies. A general promotion of it within colleges and other institutions providing a formal Computer Science education also contributes to its popularity.
However, these are not the only advantages of Java — among other things, it allows you to adopt good practices and makes it way easier to learn other languages in the future. And with no doubt, you can easily learn it if you’re following the right approach. In this post, I am going to share some of them with you.
Beyond all doubt, practice is important and valuable. But, before we get to the advantages of hands-on experience, I want to draw your attention to one essential thing I often tell my students.
New programmers who are just learning and start implementing things, without being supervised, often end up adapting bad practices. To avoid that, especially when you are making your first steps in programming, I recommend looking for a person who will supervise you and teach you. A strong mentorship with someone engaged in a serious project, as well as communication within the community in the form of sharing code and asking for feedback, is worth the effort. Similarly, when you are applying for your first job, you want to be looking for a company with a strong team and a good leader who would be keen on investing into your learning.
Now, let’s return to practical experience. Learning by doing is different from learning by passively consuming the information. To make sure we can use all the newly acquired technology, we should put our skills to test and write tons of code. The benefits of hands-on experience are almost endless.
By practicing, you get a clear understanding of what programming is. Consequently, you start doing better with each new hands-on task, complete it faster, and thus become more productive.
Even if you are not working on real-world projects yet, it’s important to get used to having deadlines. They are inextricably linked to the programming process. My recommendation is to set up your own deadlines while practicing stage and follow them as closely as possible.
#java #learn java #java code #learn java in easy way #learn java course #learn java development
Воробьёва Валерия Владимировна
1678769880
В этом руководстве по Java мы узнаем, как проверить, являются ли две строки Java анаграммами или нет.
Инверсия — это слово или фраза, созданная путем расположения букв другого слова или фразы в другом порядке. В этой статье мы обсудим различные методы проверки того, являются ли две заданные строки Java анаграммами или нет.
Итак, без лишних слов, изучите эти методы.
Когда все символы в двух строках имеют одинаковую частоту, мы говорим, что две строки являются инверсными. Например:
Здесь, в приведенных выше примерах, мы видим, что две строки имеют одинаковое количество символов, и частота появления каждого символа в двух строках также одинакова. Поэтому мы говорим, что две строки являются анаграммами друг друга.
В приведенной ниже программе мы получаем ввод String от пользователя с помощью метода nextLine() класса Scanner. Символы в этих строках преобразуются в нижний регистр с помощью метода toLowerCase() класса String. Затем эти строки преобразуются в массивы символов с помощью метода toCharArray() класса String. Мы создаем метод isAnagram(), который принимает в качестве аргументов два массива символов. В этом методе мы сначала проверяем, одинаковы ли размеры двух массивов, затем возвращаем false, в противном случае продолжаем работу в программе. Итерировать по длине строки, чтобы проверить каждый индекс массива символов; если символы в обоих массивах не совпадают, возвращается false. Если все ложные условия не выполнены, метод возвращает true.
Код:
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static boolean isAnagram(char[] first,char[] second) {
//checking length of first string is not equal to second string then return false
if(first.length!=second.length) {
return false;
}
//check character in first string is not equal to character in second string then return false
for(int i=0;i<first.length;i++) {
if(first[i]!=second[i]) {
return false;
}
}
// return true when all characters in both strings are same
return true;
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter first String:");
//input first string
String first_string=sc.nextLine();
System.out.println("Enter second String:");
//input second string
String second_string=sc.nextLine();
//convert first string into lower case
first_string=first_string.toLowerCase();
//convert second string into lower case
second_string=second_string.toLowerCase();
//convert first string into char array
char[] first_array=first_string.toCharArray();
//convert second string into char array
char[] second_array=second_string.toCharArray();
//sort first array
Arrays.sort(first_array);
//sort second array
Arrays.sort(second_array);
//calling isAnagram boolean function
if(isAnagram(first_array,second_array)) {
System.out.println("Two Strings are Anagrams");
}else {
System.out.println("Two Strings are not Anagrams");
}
}
}
Выход:
В приведенной ниже программе мы получаем ввод String от пользователя с помощью метода nextLine() класса Scanner. Символы в этих строках преобразуются в нижний регистр с помощью метода toLowerCase() класса String. Затем эти строки преобразуются в массивы символов с помощью метода toCharArray() класса String. Мы создаем метод isAnagram(), который принимает в качестве аргументов два массива символов. В этом методе мы сначала проверяем, одинаковы ли размеры двух массивов, затем возвращаем false, в противном случае продолжаем работу в программе. Мы создаем две матрицы целочисленных частот. Матрица 1 частот счета хранит частоту каждого символа в матрице первого символа, а матрица 2 частоты счета хранит частоту каждого символа во второй матрице символов. Сразу, повторить 256 раз, чтобы убедиться, что частота символов в обеих матрицах частот одинакова, и вернуть false. Если все ложные условия не выполнены, метод вернет true, что означает, что строки являются обратными.
Код:
import java.util.Scanner;
public class Main{
public static boolean isAnagram(char[] first,char[] second) {
//checking length of first string is not equal to second string then return false
if(first.length!=second.length) {
return false;
}
int[] count1=new int[256];
int[] count2=new int[256];
for(char c:first) {
int v=(int)c;
count1[v]++;
}
for(char c:second) {
int v=(int)c;
count2[v]++;
}
for(int i=0;i<256;i++) {
if(count1[i]!=count2[i]) {
return false;
}
}
return true;
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter first String:");
//input first string
String first_string=sc.nextLine();
System.out.println("Enter second String:");
//input second string
String second_string=sc.nextLine();
//convert first string into lower case
first_string=first_string.toLowerCase();
//convert second string into lower case
second_string=second_string.toLowerCase();
//convert first string into char array
char[] first_array=first_string.toCharArray();
//convert second string into char array
char[] second_array=second_string.toCharArray();
//calling isAnagram boolean function
if(isAnagram(first_array,second_array)) {
System.out.println("Two Strings are Anagrams");
}else {
System.out.println("Two Strings are not Anagrams");
}
}
}
Выход
В приведенной ниже программе мы применяем ту же логику, что и в программе выше, но изменение заключается в том, что вместо двух частотных матриц мы используем одну частотную матрицу. Основная логика программы заключается в том, что в частоте счета массива сначала увеличивается номер первого массива символов, а затем уменьшается номер второго массива символов. Посмотрите на код для лучшего понимания.
Код:
import java.util.Scanner;
public class Main{
public static boolean isAnagram(char[] first,char[] second) {
//checking length of first string is not equal to second string then return false
if(first.length!=second.length) {
return false;
}
//Frequency array of size 256 and
int[] count=new int[256];
for(int i=0;i<first.length;i++) {
//increment of chracter count in frequency array count
count[first[i]]++;
//decrement of same character count in frequency array count
count[second[i]]--;
}
//Loop for 256 times to check the frequency count of character in frequency array
//If frequency count is not equal to zero then return false
for(int i=0;i<256;i++) {
if(count[i]!=0) {
return false;
}
}
// return true when all characters in both strings are same
return true;
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter first String:");
//input first string
String first_string=sc.nextLine();
System.out.println("Enter second String:");
//input second string
String second_string=sc.nextLine();
//convert first string into lower case
first_string=first_string.toLowerCase();
//convert second string into lower case
second_string=second_string.toLowerCase();
//convert first string into char array
char[] first_array=first_string.toCharArray();
//convert second string into char array
char[] second_array=second_string.toCharArray();
//calling isAnagram boolean function
if(isAnagram(first_array,second_array)) {
System.out.println("Two Strings are Anagrams");
}else {
System.out.println("Two Strings are not Anagrams");
}
}
}
Выход
В приведенной ниже программе мы используем HashMap с символом в качестве ключа и целым числом в качестве значения. Во-первых, мы сначала перебираем длину массива символов и проверяем, присутствует ли ключ, затем увеличиваем количество символов, а если его нет в карте, устанавливаем количество символов равным 1. Во-вторых, мы перебираем длину второго массива символов и проверяем наличие ключа, затем уменьшаем количество символов и возвращаем false, если ключа нет. Если не выполняются все ложные условия, метод isAnagram() возвращает true, что означает, что строки являются анаграммами.
Код:
import java.util.*;
public class Main{
public static boolean isAnagram(char[] first,char[] second) {
//checking length of first string is not equal to second string then return false
if(first.length!=second.length) {
return false;
}
//creating HashMap with Character as key and Integer as value
HashMap<Character,Integer> map=new HashMap<>();
//Loop in char array first
//put value 1 for character not present in hashmap
//Increment value if character is present
for(int i=0;i<first.length;i++) {
if(map.containsKey(first[i])) {
map.put(first[i], map.get(first[i])+1);
}else {
map.put(first[i], 1);
}
}
//Loop in char array second
//return false if character is not present in hashmap
//Decrement value if character is present
for(int i=0;i<second.length;i++) {
if(map.containsKey(second[i])){
map.put(second[i], map.get(second[i])-1);
}else {
return false;
}
}
//extract all keys of map
Set<Character> keys=map.keySet();
// for each key check value
//return false if value is not equal to 0
for(Character key:keys) {
if(map.get(key)!=0) {
return false;
}
}
// return true when all characters in both strings are same
return true;
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
System.out.println("Enter first String:");
//input first string
String first_string=sc.nextLine();
System.out.println("Enter second String:");
//input second string
String second_string=sc.nextLine();
//convert first string into lower case
first_string=first_string.toLowerCase();
//convert second string into lower case
second_string=second_string.toLowerCase();
//convert first string into char array
char[] first_array=first_string.toCharArray();
//convert second string into char array
char[] second_array=second_string.toCharArray();
//calling isAnagram boolean function
if(isAnagram(first_array,second_array)) {
System.out.println("Two Strings are Anagrams");
}else {
System.out.println("Two Strings are not Anagrams");
}
}
}
Выход
В этой статье мы обсудили различные методы проверки того, являются ли две строки в java анаграммами или нет.
Источник: https://www.naukri.com