第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

seqSearchFunction(String s,char c)

seqSearchFunction(String s,char c)

HUWWW 2022-09-14 15:32:10
我正在嘗試創(chuàng)建兩個(gè)函數(shù)。一:如果 c 變量在 String 變量中至少出現(xiàn)一次,則顯示“true”。二:函數(shù)相同,但顯示字母的位置。更具體地說,如果 c 出現(xiàn)在 s 中,seqSearchPos 函數(shù)(字符串 s,字符 c)將搜索 c 的位置,如果存在,函數(shù)會(huì)將 c 的位置返回到 s。如果 c 不存在,則該函數(shù)將返回 -1??杀氖牵恢廊绾谓鉀Q這個(gè)問題,這個(gè)關(guān)于字符串和char的特定問題。一定有一個(gè)我仍然不知道的方法可以幫助我解決這個(gè)問題public static boolean seqSearch(String s, char c) {       boolean found=false;       if(s.equals(c)) {           found=true;       }       return found;   }主要:String s="e";char c='e';System.out.println(seqSearch(s,c));public static int seqSearchPos(String s,char c) {       int position=-1;       for(int i=0; i<s.length(); i++) {           if(s.equals(c)) {               position=i;               break;           }       }       return position;   }主要:String s="hello";char c='e';System.out.println(seqSearchPos(s,c));我期望在第一個(gè)和第二個(gè)位置1中顯示真,但它分別顯示假和-1。
查看完整描述

4 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

這行代碼中有一個(gè)錯(cuò)誤:


if(s.equals(c)) {

它正在將整個(gè)字符串與字符進(jìn)行比較,并且(顯然)不匹配。


您需要比較字符串中索引處的單個(gè)字符:


if (s.charAt(i) == c) {

順便說一句,您也可以直接從語句中使用。這將允許您刪除變量并使代碼更短一些:returnifposition


public static int seqSearchPos(String s, char c) {

    for (int i = 0; i < s.length(); i++) {

        if (s.charAt(i) == c) {

            return i;

        }

    }

    return -1;

}

還有一個(gè)字符串.indexOf(int c) 方法,它完全可以滿足您的需求,并允許您像這樣編寫該方法:


public static int seqSearchPos(String s, char c) {

    return s.indexOf(c);

}

或者,更好的是,只需直接調(diào)用該 String 方法,而不是將其包裝在您自己的函數(shù)中。


查看完整回答
反對 回復(fù) 2022-09-14
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

你應(yīng)該能夠在這里找到你的答案:如何檢查字符串中是否出現(xiàn)一個(gè)字符?

其中一個(gè)答案還談到了角色的位置。

他們基本上正在使用默認(rèn)的字符串庫,即:String.contains()String.indexOf()


查看完整回答
反對 回復(fù) 2022-09-14
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊

實(shí)際上,您正在嘗試實(shí)現(xiàn)字符串類的方法。contains(char)indexOf(char)


您正在將整個(gè)字符串與單個(gè)字符進(jìn)行比較。如果字符串的長度不是 1,則您的方法將始終返回 false。要糾正這一點(diǎn),您應(yīng)該迭代 String 的每個(gè)字符,并且您可以使用 == 運(yùn)算符比較兩個(gè) char。


public static boolean seqSearch(String s, char c) {

   boolean found=false;

   for(int i=0;i<s.length();i++){

     if(s.charAt(i)==c) {

        found=true;

     }

   }

   return found;

}


同樣的問題也存在于你的第二期中,你應(yīng)該比較每個(gè)字符。


public static int seqSearchPos(String s,char c) {

   int position=-1;

   for(int i=0; i<s.length(); i++) {

       if(s.charAt(i)==c) {

           position=i;

           break;

       }

   }

   return position;

}


查看完整回答
反對 回復(fù) 2022-09-14
?
至尊寶的傳說

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

正如其他人所指出的,你的問題是你將整個(gè)字符串與字符進(jìn)行比較,這總是假的。sc


以下是使用 Java 流的方法的兩個(gè)實(shí)現(xiàn):


public static boolean seqSearch(String string, char character) {

    return string.chars().anyMatch(c -> c == character);

}

這將創(chuàng)建一個(gè)包含所有返回 true 的字符(如果其中任何一個(gè)為 true)。IntStream


public static int seqSearchPos(String string, char character) {

    return IntStream.range(0, string.length())

            .filter(i -> string.charAt(i) == character)

            .findFirst()

            .orElse(-1);

}

在這里,您將創(chuàng)建一個(gè) from to,如果找到該 char,則返回第一個(gè)索引。如果不是,則返回 。IntStream0n - 1-1


除此之外,您還可以使用本機(jī) String.indexOf() 方法,該方法完全符合您的要求:


public static int seqSearchPos(String string, char character) {

    return string.indexOf(character);

}

您也可以將此方法用于您的方法:seqSearch()


public static boolean seqSearch(String string, char character) {

    return string.indexOf(character) >= 0;

}

或者,您可以使用本機(jī)字符串.contain() 方法來實(shí)現(xiàn)此目的:


public static boolean seqSearch(String string, char character) {

    return string.contains(String.valueOf(character));

}


查看完整回答
反對 回復(fù) 2022-09-14
  • 4 回答
  • 0 關(guān)注
  • 139 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)