Итак, в основном я должен получить список строк, заполнить его двумя строками и сравнить их. Например, если одна строка «1,2,3,4», а вторая «7,6,2,8,1», то она должна вывести «1,2», потому что она печатает числа, которые похожи , Но я получаю исключение arrayindexoutofbounds и не могу понять, как это исправить. Кроме того, если у вас есть какие-либо советы по сокращению этого кода, пожалуйста, сообщите мне. У меня есть привычка делать мой код очень длинным.
import java.util.*;
public class Compare
{
public static void main(String[]args)
{
ArrayList<String> hap=new ArrayList<String>();
hap.add("1,7,8,2");
hap.add("6,2,4,10,8");
String ar1=hap.get(0);
String ar2=hap.get(1);
String[]arr1=new String[ar1.length()];
String[]arr2=new String[ar2.length()];
for(int i=0;i<ar1.length();i++)
{
if(ar1.charAt(i)!=(','))
{
arr1[i]=""+ar1.charAt(i);
}
}
for(int i=0;i<ar2.length();i++)
{
if(ar2.charAt(i)!=(','))
{
arr2[i]=""+ar2.charAt(i);
}
}
ArrayList<String> b=new ArrayList<String>();
int ah=0;
while(ah<arr1.length)
{
for(int i=0;i<arr2.length;i++)
{
if(arr1[ah]==arr2[i]) //error on this line
{
b.add(arr1[ah]);
}
ah++;
}
}
for(int i=0;i<b.size();i++)
{
System.out.println(b.get(i));
}
}
}