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

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

返回滿足條件的所有字符串值

返回滿足條件的所有字符串值

白衣非少年 2022-09-01 16:36:41
不知道如何設置此方法,該方法獲取字符串數組作為參數,并且必須在新數組中返回滿足以下條件的所有值:數組的每個元素中25%的字符是數字;public static String[] returnSentence(String[] str){    int nrOfWords = str.length;    int count = 0;    for(int i = 0; i < nrOfWords; i++){        for(int j = 0; j < str[i].length; j++){        }    }}我有一個想法,它應該是這樣的東西,但不能格式化代碼來測試條件......
查看完整描述

3 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

你的問題基本上可以歸結為弄清楚字符串中有多少個字符完整地填充了給定的條件,有多少字符沒有。


有兩種方法可以做到這一點:


1)簡單地計算字符:


int numPositiveChars = 0;

int numNegativeChars = 0;

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

    char c = s.charAt(i);        

    if (/*check c here*/)

        numPositiveChars++;

    else

        numNegativeChars++;

}

實際上,您甚至不需要計算負字符,因為該值只是。s.length() - numPositiveChars


2)另一種方法是使用正則表達式,例如通過刪除所有非數字字符,然后獲取字符計數:


int numPositiveChars = s.replaceAll("[^0-9]+", "").length();

此行將從 String 中刪除所有非數字字符(不是 0-9),然后返回結果的長度(數字字符數)。


一旦你有了符合你條件的字符數,計算百分比就變得微不足道了。


查看完整回答
反對 回復 2022-09-01
?
MMTTMM

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

您只需要替換每個元素中的所有非數字,然后像這樣比較長度:


public static List<String> returnSentence(String[] str) {

    int nrOfWords = str.length;

    List<String> result = new ArrayList<>();

    for (int i = 0; i < nrOfWords; i++) {

        if(str[i].replaceAll("\\D", "").length() == str[i].length() * 0.25){

            result.add(str[i]);

        }

    }

    return result; // If you want an array use : return result.toArray(String[]::new);

}

我也會使用List而不是數組作為結果,因為你不知道有多少元素是尊重條件的。


如果你想用流媒體解決,它可以更容易:


public static String[] returnSentence(String[] str) {

    return Arrays.stream(str)

            .filter(s-> s.replaceAll("\\D", "").length() == s.length() * 0.25)

            .toArray(String[]::new);

}


查看完整回答
反對 回復 2022-09-01
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

像這樣的東西


public static String[] returnSentence(String[] str){

int nrOfWords= str.length;


String[] temp_Str = new String[20];

int count = 0;

int k=0;

for(int i = 0;i<nrOfWords;i++){

    for(int j = 0;j<str[i].length;j++){

      if(Character.isAlphabetic(str[i].getcharat(j)))

   {

     count++;

   }

   if((count/100.0)*100>=25)

    {  temp_Str[k]=str[i];

       k++;

       }



    }

}

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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