区分分隔符

时间:2012-11-30 14:40:45

标签: java nodes delimiter

我想从文本文件中读取一些数据。例如:

1 //总共1个客户数据

192.168.1.116; PC3; /家庭/ PC3 /文件; C:/用户/窗/桌面; //客户数据的详细信息。

这是我的代码:

String strLine;
String [] values = new String[4];
int counter = 0;
int clientCounter = 0;
//Read File Line By Line
while ((strLine = br.readLine()) != null)   
{
// Print the content on the console
String delims = ";";
String[] tokens = strLine.split(delims);
if(counter == 0)//Reading total clients
{                       
    totalClient = Integer.parseInt(tokens[0]);
    counter++;
}
else
{   
for (int i = 0; i < tokens.length; i++)
{
values[i] = tokens[i];  
}
dc = new DisplayClient(clientCounter,values[0],values[1]," ",values[2],values[3]);
clientList.add(dc);

但是现在我需要阅读的文件几乎没有分隔符。例如:

0:1,0.5,2,0.7,3,0.2; // 7件

1:0,0.5,7,1; // 5件

2:0,0.7; // 3项

我正在使用此数据创建p2p模拟。

2:0,0.7; //表示节点2连接到节点0,带宽为700kbps

1:0,0.5,7,1; //表示节点1以500kbps连接到节点0,节点1也以1000kbps(1mbps)连接到节点7。

但现在它有3个分隔符,节点项可能是静态的。它可能是3项或5项或7项或可能更多。我怎样才能读到这个并让每个数据用分隔符区分?

对不起我的无知,并提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我会试试这个:

  1. 每行保留一个路由,但删除分号。
  2. 用逗号和冒号分隔路由,而不是分号。
  3. 加载第一个int(它是您的源节点)
  4. 迭代加载您的下一对整数(它们是您的目标节点和速度)。

答案 1 :(得分:1)

我会以不同的方式表示数据:

1:0,0.5; 7,1; N,S; .......

1.拆分“:”上的行,并将源节点设置为数组的第一个元素。

2.Split second entry by“;”并对结果数组进行迭代,每个条目代表一个节点,对于每个节点,您可以将其拆分为“,”并获取节点数和速度。

3.对于每个源节点,您现在拥有所有连接的节点及其速度,无论其编号是多少。