JavaScript
x
public class YellowPages {
//company array
public Company[] save() {
Company[] com = new Company[5];
com[0] = new Company("abc", 123, "abc@gmail.com", 57839174, "abc.com", City.THRISSUR);
com[1] = new Company("cde", 456, "cde@gmail.com", 47578317, "cde.com", City.TRIVANDRUM);
com[2] = new Company("fgh", 789, "fgh@gmail.com", 82239129, "fgh.com", City.KOCHI);
com[3] = new Company("ijk", 127, "ijk@gmail.com", 45758379, "ijk.com", City.KOZHIKODE);
com[4] = new Company("lmn", 845, "lmn@gmail.com", 65893948, "lmn.com", City.KODUNGALLUR);
return com;
}
//code to print all companies
public void showData() {
save();
Company[] com = save();
for (int i = 0; i < com.length; i++) {
System.out.println(com[i].toString());
}
}
//code to compare company_name
public void comparecompany() {
save();
Company[] com = save();
String a = "lmn";
boolean found = false;
for (int i = 0; i < com.length; i++) {
String b = a.toLowerCase();
if (com[i].getcompanyname().equals(b)) {
System.out.println("company exist");
found = true;
break;
}
}
if (found == false)
System.out.println("company doesnt exist");
}
//code to find the string company_name which starts with a
public void starta() {
save();
Company[] com = save();
//show names containing the letter starting as the first letter
for (int i = 0; i < com.length; i++) {
String comp = com[i].getcompanyname();
for (String i1: comp) {
if (i1.startsWith("a")) System.out.println(i1);
}
}
}
//to print employees in a company
public void empcompany() {
save();
Company[] com = save();
saves();
Employee[]emp=saves();
String comp="abc";
boolean found=false;
for(int i=0;i<com.length;i++) {
for(int j=0;j<emp.length;j++) {
String coms=com[i].getcompanyname();
String empd=emp[j].getempName();
Company cos=emp[j].getcompany();
if(com[i].getcompanyname().equals(empd)) {
System.out.println(comp+" has "+empd+" as employees");
}
}
}}
//employee array
public Employee[] saves() {
save();
Company[] com=save();
Employee []emp=new Employee[5];
emp[0]=new Employee(321,"rahul","manager","Male",907374383,City.KODUNGALLUR,com[0]);
emp[1]=new Employee(654,"akhil","assistant manager","Male",703845983,City.KOZHIKODE,com[1]);
emp[2]=new Employee(987,"mithun","supervisor","Male",598339834,City.KOCHI,com[2]);
emp[3]=new Employee(721,"visakh","assistant supervisor","Male",339835300,City.TRIVANDRUM,com[3]);
emp[4]=new Employee(548,"sharma","trainee","Male",545348945,City.THRISSUR,com[4]);
return emp;
}
//to print all employees
public void showDatas() {
saves();
Employee[] emp=saves();
for(int i=0;i<emp.length;i++) {
System.out.println(emp[i].toString());
}
}
}
the last function starta() should print the company_name starting with a.I have given com[i].getcompanynamefunction as a string to a variable comp.
Its should print the output as the companyname. this is the error shown
Exception in thread “main” java.lang.Error: Unresolved compilation problem: Can only iterate over an array or an instance of java.lang.Iterable
JavaScript
at com.aitrich.yellowpages.YellowPages.starta(YellowPages.java:53)
at com.aitrich.yellowpages.Main.main(Main.java:14)
Advertisement
Answer
This is happening because you are trying to run a for loop on a String, comp, where as a for loop is meant only for an array or an iterable.. Try with below code, it should work
JavaScript
package com.practice;
public class TestCompany {
public static void main(String[] args) {
new TestCompany().starta();
}
public void comparecompany() {
Company[] com = save();
String a = "lmn";
boolean found = false;
for (int i = 0; i < com.length; i++) {
String b = a.toLowerCase();
if (com[i].getcompanyName().equals(b)) {
System.out.println("company exist");
found = true;
break;
}
}
if (found == false)
System.out.println("company doesnt exist");
}
// code to find the string company_name which starts with a
private Company[] save() {
Company[] companies = new Company[5];
companies[0] = new Company("abc");
companies[1] = new Company("def");
companies[2] = new Company("ghi");
companies[3] = new Company("jkl");
companies[4] = new Company("ijk");
return companies;
}
public void starta() {
Company[] com = save();
// show names containing the letter starting as the first letter
for (int i = 0; i < com.length; i++) {
String comp = (String) com[i].getcompanyName();
if (comp.startsWith("a"))
System.out.println(comp);
}
}
}