亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

搜索字符數組以查看字符是否匹配

搜索字符數組以查看字符是否匹配

尚方寶劍之說 2022-09-07 21:06:31
我有兩個 char 數組,它們將兩個字符串作為輸入。如果兩側的 char 具有匹配的 char,例如,將 char 數組轉換為字符串 char A 和 B 都至少有一個 H 或 R,則它將返回 true。如果不是,則返回 false。>char[] A = foo(A).toCharArray();>>char[] B = foo(B).toCharArray();>>System.out.println("String "+A+": "+Arrays.toString(A));>>System.out.println("String "+B+": "+Arrays.toString(B));>String A: [H,  , R,  ]>>String B: [R,  , R, R]>>This will return true>String A: [ , H,  , R]>>String B: [H, H,  , H]>>This will return true>String A: [H,  , H,  ]>>String B: [R,  , R,  ]>>This will return false我很困惑如何制定這樣的規則?
查看完整描述

5 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

您可以在此處使用,這將在一次迭代中給出結果。使用進一步減少執行時間,因為它消除了重復java.util.Setjava.util.TreeSet


public static void main(String[] args) {

    char[] A = "HR".toCharArray();

    char[] B = "RRR".toCharArray();


    Set<Character> set = new TreeSet<>();

    boolean flag = false;

    for(char c : A) {

        set.add(c);

    }

    for(char c : B) {

        if(set.contains(c)) {

            System.out.println(true);

            flag = true;

            break;

        }

    }

    if(!flag) {

        System.out.println(false);

    }

}


查看完整回答
反對 回復 2022-09-07
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

您可以做的是使用 For 在 matriz 中迭代,并驗證當前項是“R”還是“H”。


boolean returnedValue = false;


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

  char currentItem = B[i];

  if(currentItem == 'R' || currentItem == 'H'){

    returnedValue = true;

 }

}


return returnedValue;


查看完整回答
反對 回復 2022-09-07
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

好吧,它很簡單,你所要做的就是添加一個嵌套的循環


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

      for(int j = 0; j < B.length; j++){

             if(if B[j] ==A [i]){

                  return true

             }

      }

}


        return false;


查看完整回答
反對 回復 2022-09-07
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

使用Java 1.8,您可以執行以下操作:


//@Momir Sarac

String text1 = "b9H ello";

String text2 ="avn1c fk";

// 32 is for empty space character here, you could do i != ' ' and it would be the same

//turn text1 into intstream each int corresponding to it's char value

//filter empty space ints

//get only distinct out of them

//take a look for any match if some int is contained within text2

boolean result = text1.chars().filter(i->i != 32).distinct().anyMatch(character->text2.contains(String.valueOf(character)) || text2.lastIndexOf(character) != -1);

//print it on screen

System.out.printf("Two texts %s same letter(s).", result ? "have" : "don't have");



查看完整回答
反對 回復 2022-09-07
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

使用第一個循環從第一個數組中獲取每個元素。


使用第二個循環檢查第二個數組中的第一個元素。


檢查第一個數組中的當前值是否等于 H 或 R。


如果是,請檢查它是否在第二個數組中并返回 true。


public static boolean check() {

        String s1 = "ABHEEF", s2 = "RDDFVW";

        char[] arr1 = s1.toCharArray();

        char[] arr2 = s2.toCharArray();


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

            for (int j = 0; j < arr2.length; j++) {

                if(arr1[i] == 'H' || arr1[i] == 'R') {

                    if(arr1[i] == arr2[j])

                        return true;

                }


            }

        }

        return false;

    }


查看完整回答
反對 回復 2022-09-07
  • 5 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號