user9375916
user9375916

Reputation:

StringTokenizer error: incompatible types: Object cannot be converted to String

My code :

class Customer
{
String name_dob,name,dob,dd,mm,yyyy;
void stringTokenize()
{
    StringTokenizer st1 = new StringTokenizer(name_dob,",");
    name = st1.nextElement();
    dob = st1.nextElement();
    StringTokenizer st2 = new StringTokenizer(dob,"/");
    dd = st2.nextElement();
    mm = st2.nextElement();
    yyyy = st2.nextElement();
}
void display()
{
    System.out.println(name + "," + dd + "," + mm + "," + yyyy);
}
}
public class Main
{
public static void main(String[] args) {
    int i,n;
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter the number of data");
    n = sc.nextInt();
    Customer[] obj = new Customer[n];
    for(i=0;i<n;i++)
    {
        obj[i] = new Customer();
        System.out.println("Enter the data");
        obj[i].name_dob = sc.nextLine();
        obj[i].stringTokenize();
    }
    System.out.println("After tokenizing........");
    for(i=0;i<n;i++)
    {
        System.out.println("The data is");
        obj[i].display();
    }

}
}

Error that I am getting

Main.java:23: error: incompatible types: Object cannot be converted to String name = st1.nextElement();

Main.java:24: error: incompatible types: Object cannot be converted to String dob = st1.nextElement();

Main.java:26: error: incompatible types: Object cannot be converted to String dd = st2.nextElement();

Main.java:27: error: incompatible types: Object cannot be converted to String mm = st2.nextElement();

Main.java:28: error: incompatible types: Object cannot be converted to String yyyy = st2.nextElement();

Upvotes: 0

Views: 1265

Answers (2)

Yassin Hajaj
Yassin Hajaj

Reputation: 21965

You may want to use nextToken instead of nextObject. Or use nextObject and convert it to String but it seems like an overhead.

Look at the Javadoc

nextElement() Returns the same value as the nextToken method, except that its declared return value is Object rather than String.

Upvotes: 0

Andy Turner
Andy Turner

Reputation: 140299

Use nextToken instead of nextElement.

The documentation of nextElement says:

Returns the same value as the nextToken method, except that its declared return value is Object rather than String.

Upvotes: 1

Related Questions