你能在txt文件java中创建一个列吗

你能在txt文件java中创建一个列吗,java,Java,我有一个文本文件,其中包含以下行: 00001:dexter:1989:9 换句话说,每行包含字段分隔符为冒号字符的字段(:)。是否有任何方法可以访问每个字段并获取,例如,dexter作为字符串?我尝试使用方法usedilemeter(),然后读取第一行,但它不是字符串。以下是节目: Scanner sc; String token=null; sc = new Scanner("00001:dexter:1989:9"); sc.useDelimiter(":&

我有一个文本文件,其中包含以下行:

00001:dexter:1989:9
换句话说,每行包含字段分隔符为冒号字符的字段(
)。是否有任何方法可以访问每个字段并获取,例如,
dexter
作为字符串?我尝试使用方法
usedilemeter()
,然后读取第一行,但它不是字符串。以下是节目:

Scanner sc;
String token=null;
sc = new Scanner("00001:dexter:1989:9");
sc.useDelimiter(":");
while (sc.hasNext()) {
    token = sc.next();
    System.out.println(token);
}
System.out.println(ss.substring(0, ss.indexOf(":")));
有没有办法随时将任何字段作为字符串读取?

我对java和SO都是新手,所以任何答案都将不胜感激。谢谢。

我能想到的最简单的方法是:

String getColumn(int n,string s)
{
   return ( n <= 0 ) ? s.subString(0,s.indexOf(":")) : getColumn(--n,s.subString(s.indexOf(":") + 1 , s.length);
}

getColumn(1,"00001:dexter:1989:9"); // Returns dexter
stringgetcolumn(int n,strings)
{
返回(北:北)
  • 步骤2->b

  • 简而言之,它从前面删除列,直到n>0,然后从后面删除所有列,只留下所需的列。

    我建议使用CSV库。其中大多数库允许更改分隔符。否则,
    split(“:”)
    您共享的代码片段将打印我们的每个“列”单独。你能详细说明这里到底是什么问题吗?我不建议使用split,因为它使用regexp,并且需要正确的转义。如果你不小心,这可能会导致错误。@Mureinik如在我的书中,将一个特定的字符串作为一个字符串,如果我想写入一个名为dexter.txt的文件并想使用它如果您已经知道所需的列索引是
    1
    ,在这种情况下,
    返回(n@MC),那么我们可以用什么来替换此代码呢?