Java 如何使用indexOf和substring方法标记字符串

Java 如何使用indexOf和substring方法标记字符串,java,tokenize,Java,Tokenize,所以我必须标记一个字符串,我只能使用这两种方法来标记 我有基地,但我不知道放什么进去, 我的朋友做了,但我忘了它是什么样子,它是这样的 我记得他用标签的长度把它分开 public class Tester { private static StringBuffer sb = new StringBuffer ("The cat in the hat"); public static void main(String[] args) { for(int i = 0; i < sb.

所以我必须标记一个字符串,我只能使用这两种方法来标记 我有基地,但我不知道放什么进去, 我的朋友做了,但我忘了它是什么样子,它是这样的 我记得他用标签的长度把它分开

public class Tester
{
private static StringBuffer sb = new StringBuffer ("The cat in the hat");
public static void main(String[] args) 
{
    for(int i = 0; i < sb.length() ; i++)
    {
        int tempIndex = sb.indexOf(" ", 0);
        sb.substring(0,tempIndex);
        if(tempIndex > 0) 
        {
            System.out.println(sb.substring(0,tempIndex));
            sb.delete(0, sb.length());
        }

    }

}
}
公共类测试器
{
私有静态StringBuffer sb=新StringBuffer(“帽子里的猫”);
公共静态void main(字符串[]args)
{
for(int i=0;i0)
{
系统输出println(sb子串(0,tempIndex));
sb.删除(0,sb.length());
}
}
}
}
字符串。indexOf(int ch)返回字符的索引。如果你做了
sb.indexOf(“”)
你会得到一个空间的第一个索引。您可以将其与
substring()
sb。substring(0,sb.indexOf(“”)-1)
将获得您的第一个令牌


这似乎是一个家庭作业问题,所以我不想给你完整的答案,但你可能可以解决它。如果您需要更多帮助,请发表评论。

如果您熟悉while循环构造,您可以查看我的伪代码,它应该在您的问题的限制范围内:

String text = "texty text text"

while(TextHasASapce){
     print text up to space
     set text to equal all text AFTER the space 
}
print ??
使用您允许的两种方法,上述内容可以逐行转换为您所追求的内容


希望有帮助。

你为什么要放弃?阅读
字符串的javadoc。然后想想你将如何在纸和笔上完成它。你需要寻找哪些字符?@JunedAhsan-你的意思是,你不能使用indexOf和substring编写拆分方法?????想想!!如果需要在空格处拆分,请找到一个空格,然后将该部分子串到(但不包括)该空格处,丢弃该空格,然后重复做什么??(回答,除了抛出一个异常之外,绝对没有什么。)你知道如何找到,对吗?它给了我一个边界外的异常,这是你可能需要减去1的代码?@user3678006-请记住,最后一个indexOf将返回一个负数,因为找不到空格。因此,您不应该直接说
sb.substring(0,sb.indexOf(“”)-1)
,而应该将indexOf操作的结果保存在一个temp中,用
if
语句测试它,并且只在值为正时使用它。@user3678006-通常,尤其是在学习时,不要将内容写成
sb.substring(0,sb.indexOf(“”)-1)
,但使用临时变量分为单独的步骤来存储中间结果。然后您就可以轻松地检查这些中间结果来调试您的程序。@user3678006-听起来您需要稍微后退一点。只需编写一个简单的程序,将一些数字相加并打印出来。编写一个程序,使用
子字符串
在硬编码点拆分字符串等。我键入的段中的每一行都可以替换为一行代码。我的示例中的每个句子都说明了这行代码需要做什么,您只需要将我的文本替换为相关的编码。例如,我将while(TextHasASpace)放在何处{TextHasASpace需要用一些代码来替换,这些代码检查文本是否包含空格。我丢失了,我只是现在无法保存,输出displays@user3678006有几种方法可以完成你的任务,Anubian Noob走了一条路,我走了另一条路。如果你想试试我的方法,我建议你记下我在回答中写的东西这里(在一些纸上或在你的问题代码中,然后慢慢地逐行转换为代码)。我将尝试帮助我检查文本是否有空格方法,但我发现的方法都不起作用,我将如何替换我的文本,每次删除它好的,让我们一次删除一行。第一部分,TextHasASpace。在你的问题中,列出了两个方法,indexOf和Substring。其中一个将返回一个值,告诉你如果文本有空格,哪一个?返回什么