Java 返回第n个令牌

Java 返回第n个令牌,java,stringtokenizer,Java,Stringtokenizer,我对Java非常陌生,我有一个关于暑期作业的问题。以下是说明: 编写一个名为SpecialToken的类,该类有一个名为thirdToken的静态方法。这个 方法应作为字符串返回,该字符串是作为参数传递的字符串的第三个标记 您可以假定空格将用作分隔符 这是我到目前为止所拥有的,但老实说,我对参数应该是什么以及如何返回第三个令牌感到困惑!我在想我可以在第三天之前做一些类似nextToken()的事情 public class SpecialToken { public static Str

我对Java非常陌生,我有一个关于暑期作业的问题。以下是说明:

编写一个名为SpecialToken的类,该类有一个名为thirdToken的静态方法。这个

方法应作为字符串返回,该字符串是作为参数传递的字符串的第三个标记

您可以假定空格将用作分隔符

这是我到目前为止所拥有的,但老实说,我对参数应该是什么以及如何返回第三个令牌感到困惑!我在想我可以在第三天之前做一些类似nextToken()的事情

public class SpecialToken {
    public static String thirdToken() {

    }
}
试试像这样的东西

public class SpecialToken {
    public static String thirdToken(String str) {
        String[] splited = str.split(" ");
        return splited[2];
    }
}
还可以查看或尝试在google中搜索“java按空间将字符串拆分为数组”

另外请注意,正如Betlista所说,这没有任何错误检查,因此如果传递的字符串只有两个由一个空格分隔的标记,那么您将得到一个数组越界异常

或者另一种方法是“使用StringTokenizer标记字符串。导入java.util.StringTokenizer。然后创建一个新的StringTokenizer实例,将要标记的字符串和分隔符作为参数。如果不将分隔符作为参数输入,分隔符将自动默认为空白。拥有StringTokenizer后,可以使用nextToken()方法获取每个令牌。“通过

使用此方法,您的代码应该如下所示:

public class SpecialToken {
    public static String thirdToken(String str) {
        StringTokenizer tok = new StringTokenizer(str); // If you do not enter the delimiter as a parameter, the delimiter will automatically default to white space
        int n = tok.countTokens();
        if (n < 3) {return "";}
        tok.nextToken();
        tok.nextToken();
        return tok.nextToken();
    }
}
public class SpecialToken{
公共静态字符串thirdToken(字符串str){
StringTokenizer tok=new StringTokenizer(str);//如果不输入分隔符作为参数,分隔符将自动默认为空白
int n=tok.countTokens();
如果(n<3){返回“”;}
tok.nextToken();
tok.nextToken();
返回tok.nextToken();
}
}
但是请记住Wikihow的警告“现在,不鼓励使用StringTokenizer,鼓励在String类中使用split()方法或使用java.util.regex包。”

尝试类似的方法

public class SpecialToken {
    public static String thirdToken(String str) {
        String[] splited = str.split(" ");
        return splited[2];
    }
}
还可以查看或尝试在google中搜索“java按空间将字符串拆分为数组”

另外请注意,正如Betlista所说,这没有任何错误检查,因此如果传递的字符串只有两个由一个空格分隔的标记,那么您将得到一个数组越界异常

或者另一种方法是“使用StringTokenizer对字符串进行标记化”。导入java.util.StringTokenizer。然后创建一个新的StringTokenizer实例,将要标记的字符串和分隔符作为参数。如果不将分隔符作为参数输入,分隔符将自动默认为空白。拥有StringTokenizer后,可以使用nextToken()方法获取每个令牌。“通过

使用此方法,您的代码应该如下所示:

public class SpecialToken {
    public static String thirdToken(String str) {
        StringTokenizer tok = new StringTokenizer(str); // If you do not enter the delimiter as a parameter, the delimiter will automatically default to white space
        int n = tok.countTokens();
        if (n < 3) {return "";}
        tok.nextToken();
        tok.nextToken();
        return tok.nextToken();
    }
}
public class SpecialToken{
公共静态字符串thirdToken(字符串str){
StringTokenizer tok=new StringTokenizer(str);//如果不输入分隔符作为参数,分隔符将自动默认为空白
int n=tok.countTokens();
如果(n<3){返回“”;}
tok.nextToken();
tok.nextToken();
返回tok.nextToken();
}
}

但是请记住Wikihow的警告“现在,不鼓励使用StringTokenizer,鼓励在String类中使用split()方法或使用java.util.regex包。”

您将如何返回第一个标记?而不是“作为参数传递的字符串”“参数提示?
public static String thirdToken(String entireText){
现在将字符串作为参数传递。是否处理Scanner类?再见。
StringTokenizer
Scanner
更好……如何返回第一个标记?而不是“作为参数传递的字符串”参数提示?
public static String thirdToken(String entireText){
现在将字符串作为参数传递。是否处理Scanner类?再见。
StringTokenizer
Scanner
更好……是的,但有一些特殊情况,如
“ab cd”
“ab cd”
应该正确处理…如果你想使用java类,那么看看google上的“StringTokenizer”类的例子。这是标准的java版本。是的,但是像
“ab cd”
“ab cd”
这样的特殊情况应该正确处理…如果你想使用java类,那么看看google上的“StringTokenizer”类。这是标准的java版本。