检查单词是否为句中其他单词的前缀

给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。

如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1 。

字符串 s 的 前缀 是 s 的任何前导连续子字符串。

示例 1:

输入:sentence = "i love eating burger", searchWord = "burg"
输出:4
解释:"burg" 是 "burger" 的前缀,而 "burger" 是句子中第 4 个单词。

---

数组转化为list

 

String[] sentence_array = sentence.split(" "); List<String> sentence_list = new ArrayList<String>(Arrays.asList(sentence_array));

数组转换为集合List Long[] formIds; List<Long> formIdsNew = new ArrayList<>(Arrays.asList(formIds));

这种方法却有其局限性:如果传入的参数是一个数组,那么这个数组一定要是引用类型才能将其转换为List集合, 当传入基本数据类型数组时则会将这个数组对象当成一个引用类型对象存进List集合。

2. 集合转换为数组 List<String> stringList = new ArrayList<>(); String[] strings = new String[stringList.size()]; //转换的方法:toArray() stringList.toArray(strings);

为什么不用toArray()它的无参方法呢,因为它的无参方法返回的是一个Object类型数组,即使你的集合是带泛型。 所以用那个方法会面临一个Object类型数组之后的数据转型,相对用它的有参方法会更麻烦。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Java0821 {

    public static int isContain(String sentence, String searchWord) {

        // 方式1,一个一个对比字母
        for (int i = 0; i < sentence.length(); i++) {

        }
        // 方式2,把句子分割为数组-再转化为list
        System.out.println(sentence);
        String[] sentence_string = sentence.split(" ");
        // List<Long> formIdsNew = new ArrayList<>(Arrays.asList(formIds));
        System.out.println("print array :");
        for (String s : sentence_string) {
            System.out.println(s);
        }
        System.out.println("print list :");
        List<String> sentence_list = new ArrayList<String>(Arrays.asList(sentence_string));
        for (String li : sentence_list) {
            System.out.println(li);
        }
        for (int i = 0; i < sentence_list.size(); i++) {
            if (searchWord.equals(sentence_list.get(i))) {
                return i + 1;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        String sentence = "i love you ";
        String searchWord = "you";
        System.out.println(isContain(sentence, searchWord));

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Roam-G

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值