需要数组,但Java.lang.string发现字符串错误
我正在尝试使用2D数组来创建JTable。为JTable中的列赋值时,我得到Java.lang.String found错误。变量的数据类型也是String,2D数组也是String类型需要数组,但Java.lang.string发现字符串错误,java,Java,我正在尝试使用2D数组来创建JTable。为JTable中的列赋值时,我得到Java.lang.String found错误。变量的数据类型也是String,2D数组也是String类型 import java.io.*; import java.util.*; /** * Write a description of class PhoneBook here. * * @author (your name) * @version (a version number or a date) *
import java.io.*;
import java.util.*;
/**
* Write a description of class PhoneBook here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class PhoneBook
{
static PhoneBookEntry contacts[] = new PhoneBookEntry[100];
int a=0;
int b[] = new int [100];
int count=0;
public void getData()throws IOException
{
FileReader in = new FileReader("phonebookinput.txt");
BufferedReader textreader = new BufferedReader(in);
String sp[];
for(a=0; a<contacts.length; a++)
{
String s = textreader.readLine();
sp = s.split("\t");
contacts[a] = new PhoneBookEntry(sp[0], sp[1], (Integer.parseInt(sp[2])), sp[3], sp[4]);
}
}
public void add(String z, String x, int c, String d, String e)
{
for (int t=0; t<b.length; t++)
{
if (contacts[b[t]].getNumber().equals("XXXX"))
{
contacts[b[t]] = new PhoneBookEntry(z, x, c, d, e);
}
else
{
contacts[a+1] = new PhoneBookEntry(z, x, c, d, e);
a++;
}
}
}
public int searchName(String n)
{
int y=-1;
for (int b=0; b<contacts.length;b++)
{
if (contacts[b].getFirstName().equalsIgnoreCase(n))
{
y=b;
}
else if (contacts[b].getLastName().equalsIgnoreCase(n))
{
y=b;
}
}
return y;
}
public int searchNumber(String m)
{
int x=-1;
for(int d=0; d<contacts.length; d++)
{
if (contacts[d].getNumber().startsWith(m))
{
x=d;
}
else if (contacts[d].getNumber().endsWith(m))
{
x=d;
}
}
return x;
}
public boolean edit(String a, String b, int c, String d, String e, String f)
{
int g=searchName(f);
int h=searchNumber(f);
if (g!=-1)
{
contacts[g].setFirstName(a);
contacts[g].setLastName(b);
contacts[g].setAge(c);
contacts[g].setNumber(d);
contacts[g].setEmail(e);
return true;
}
else if (h!=-1)
{
contacts[h].setFirstName(a);
contacts[h].setLastName(b);
contacts[h].setAge(c);
contacts[h].setNumber(d);
contacts[h].setEmail(e);
return true;
}
else {return false;}
}
public void deleteValue(String u)
{
int g=searchName(u);
int h=searchNumber(u);
if (g!=-1)
{
contacts[g].setFirstName("XXXX");
contacts[g].setLastName("XXXX");
contacts[g].setAge(-1);
contacts[g].setNumber("XXXX");
contacts[g].setEmail("XXXX");
b[count]=g;
}
else if (h!=-1)
{
contacts[h].setFirstName("XXXX");
contacts[h].setLastName("XXXX");
contacts[h].setAge(-1);
contacts[h].setNumber("XXXX");
contacts[h].setEmail("XXXX");
b[count]=h;
}
count = count + 1;
}
public void sortFirstName()
{
for (int r=99; r>=0; r--)
{
for (int h=0; h<=r-1; h++)
{
if (contacts[h].getFirstName().compareTo(contacts[h+1].getFirstName())>0)
{
String temp = contacts[h+1].getFirstName();
contacts[h+1].setFirstName(contacts[h].getFirstName());
contacts[h].setFirstName(temp);
}
}
}
}
public void sortLastName()
{
for (int r=99; r>=0; r--)
{
for (int h=0; h<=r-1; h++)
{
if (contacts[h].getLastName().compareTo(contacts[h+1].getLastName())>0)
{
String temp = contacts[h+1].getLastName();
contacts[h+1].setLastName(contacts[h].getLastName());
contacts[h].setLastName(temp);
}
}
}
}
public void printDetails()
{
String [] columnNames = {"First Name", "Last Name", "Age", "Phone Number", "Email"};
String data [][] = new String [100][5];
for (int u=0; u<data.length; u++)
{
String first = contacts[u].getFirstName();
String last = contacts[u].getLastName();
String age = Integer.toString(contacts[u].getAge());
String number = contacts[u].getNumber();
String email = contacts[u].getEmail();
columnNames[u][0] = first; //Here is where the error comes
columnNames[u][1] = last;
columnNames[u][2] = age;
columnNames[u][3] = number;
columnNames[u][4] = email;
}
JTable table = new JTable (data, columnNames);
table.setEnabled(false);
}
import java.io.*;
导入java.util.*;
/**
*在这里写一个类电话簿的描述。
*
*@author(你的名字)
*@version(版本号或日期)
*/
公共类电话簿
{
静态PhoneBookEntry联系人[]=新PhoneBookEntry[100];
int a=0;
int b[]=新int[100];
整数计数=0;
public void getData()引发IOException
{
FileReader in=newFileReader(“phonebookinput.txt”);
BufferedReader textreader=新的BufferedReader(in);
字符串sp[];
上面代码中的(a=0;acolumnNames)是一维字符串数组,但您试图将其用作二维数组
columnNames[u][0] = first; //Here is where the error comes
我认为您的意思是将循环中的值分配给数据
数组,而不是columnNames数组,如中所示
data[u][0] = first;
请正确格式化您的代码,并将其转换为一个最小的完整可验证示例:顺便说一句:int b[]
是c风格的语法-去掉它。columnNames是一个简单的数组,在错误行上我希望看到数据,不是吗?