У меня есть метод c++
extractField
который я хотел бы использовать для axtract
некоторых полей из строки. Каждое поле, ограниченное '\t'
хорошо работает в c++
может кто-то помочь мне с синтаксисом java. Я хотел бы применить метод method_ here
что я имею:
String ExtractField(String aline,int fieldnumber){
Int seppos;
String field;
for (int fld = 0: fld< fieldnumber;fld++){
seppos = aline.Pos('\t');
field = aline.SubString(1,seppos-1);
aline.delete(1.seppos);
}
If(seppos>0){return field;}
else{return aline;}
}
Следующее находится в java, переписал его для вас;)
private String ExtractField(String aline, int fieldnumber)
{
Integer seppos = new Integer();
String field;
for (int fld = 0; fld < fieldnumber; fld++)
{
seppos = aline.indexOf('\t');
field = aline.substring(1, seppos - 1);
//aline.delete(1.seppos); what does this do?
}
If(seppos > 0)
{
return field;
}
else
{
return aline;
}
}
Использовать StringTokenizer
StringTokenizer st = new StringTokenizer(aline, "\t");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
Я думаю, что это будет делать то, что вы хотите.
public String extractField(String aline, int fieldNumber) {
String[] fields = aline.split("\t");
//Illegal field NUmber.
if (fieldNumber < 0 || fieldNumber >= fields.length) {
return null;
}
return fields[fieldNumber];
}
String foo; foo.split('\t');
разделить значения табуляции