Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用子字符串查找字符串_Java - Fatal编程技术网

Java 使用子字符串查找字符串

Java 使用子字符串查找字符串,java,Java,我想检查一串食品中是否包含与垃圾食品相关的单词(例如“巧克力”、“糖果”、“薯片”),然后我想将这些单词改为水果/蔬菜 如何在不知道单词位置的情况下使用substring/indexOf方法,因为它将是用户输入 谢谢。您可以始终使用String.replace(),但如果必须使用String.substring(),则通常的操作方式如下: String junk = "chocolate"; String food = "some chocolate bar"; int

我想检查一串食品中是否包含与垃圾食品相关的单词(例如“巧克力”、“糖果”、“薯片”),然后我想将这些单词改为水果/蔬菜

如何在不知道单词位置的情况下使用substring/indexOf方法,因为它将是用户输入


谢谢。

您可以始终使用
String.replace()
,但如果必须使用
String.substring()
,则通常的操作方式如下:

    String junk = "chocolate";
    String food = "some chocolate bar";
    int index = food.indexOf( junk );
    if( index != -1 )
    {
        int n = index + junk.length();
        food = food.substring( 0, index ) + "banana" + food.substring( n );
    }
    System.out.println( food );

你真正想做的是在数组上迭代并验证数组的每个值是否包含对垃圾食品的提及;包含的方法更适合于此

布尔junkFoodValidator(字符串[]数组){ for(字符串a:数组){ 如果(a.contains(“chocolate”)| | a.contains(“candy”){//您可以在此处添加更多validados 返回true; } } 返回false; }

所以它不是一个“字符串数组”,请编辑这个。 我得猜你的密码

String s = "potato, chocolate, strawberrie"
s.replace("chocolate", "apple");
如果你想训练自己,你仍然可以使用子字符串。

您将需要:

String choco = "chocolate";
int pos = s.indexOf(choco); //returns 8
int size = choco.length;
s = s.substring(0, pos) + "apple" + s.substring(pos+size, s.length);

以下是您需要的一切:)

我认为子字符串不是一种“好”的方法,就像您查看for字符串一样,没有一个子字符串方法可以接受字符串中字符索引以外的参数。但是您仍然需要子字符串

假设您仍然希望以将数组转储到字符串中的方式执行此操作,那么字符串API的一个更合适的方法是indexOf()。该参数是要查找的字符串,如果未找到,该方法将返回第一次出现的索引,或者返回-1。一旦从indexOf()获得字符串的初始索引,然后您可以使用substring来获取字符串。对于substring方法中的第二个参数,即结束索引,您可以将要查找的字符串的长度减去1添加到开始索引中

如果您想从更面向对象的方法来实现这一点,我建议为每个字符串创建一个对象,然后您可以自定义该对象类,使其具有一个参数来保存字符串的项目类型。然后,使用比较器,您可以在数组中迭代查找项目类型。我提供了一个关于如何哦,这是我的


试一试,如果您仍有困难,请对我的答案进行评论,我可以添加一些代码进行编辑。但首先尝试一下是很重要的!

您到底想如何使用子字符串?要做什么?子字符串用于提取字符串的一部分。如果您使用的是字符串数组,则它并没有真正的用处对于您的项目。例如,我想从字符串中提取巧克力,然后找到它的位置,以便用其他内容替换它。我想创建一个方法,仅从我的字符串中提取垃圾食品(该方法中不是数组,只是一个文本字符串)@JDoe-巧克力从哪里来?我的意思是你有蔬菜、水果等的单词列表吗?System.out.println(str.replaceAll(“巧克力”、“丢失”));是的,我有一个存储在数组中的单词列表。@火影忍者不使用替换方法能做到这一点吗?我不知道为什么要比我晚8分钟给出与我相同的答案。因为他想训练,而不是复制/粘贴。我现在给了你+1,你叫停?