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

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

分解任何字符串

分解任何字符串

慕無忌1623718 2021-09-15 16:03:54
大家好,我正忙于打破/拆分字符串。然而,字符串不是固定的,所以當輸入改變時,程序仍然必須處理任何字符輸入。到目前為止,我已經(jīng)走了這么遠,但我迷路了。我制作了一個字符數(shù)組,并將數(shù)組的大小設置為等于將作為輸入獲取的任何字符串的長度。我做了一個 for 循環(huán)來遍歷字符串的字符。我現(xiàn)在如何將我的字符串插入到數(shù)組中,因為我知道我的字符串還沒有在那里?然后,當它最終遍歷我的字符串的字符時,必須在不同的行上打印出數(shù)字和操作數(shù)。所以在這種情況下輸出看起來像這樣;1+3,432.123等等我想在不使用匹配器、掃描器等的情況下做到這一點。我想使用基本的 Java 技術,就像你在 HeadfirstJava 的前 3 章中學到的那樣。public class CharAtExample {public static void main(String[] args) {    // This is the string we are going to break down    String inputString = "1+3,432.123*4535-24.4";    int stringLength = inputString.length();        char[] destArray = new char[stringLength];{        for (int i=0; i<stringLength; i++);    }
查看完整描述

3 回答

?
神不在的星期二

TA貢獻1963條經(jīng)驗 獲得超6個贊

您可以使用Character.isDigit(char)區(qū)分數(shù)字和非數(shù)字字符,因為實際上這是在同一行中對多個字符進行分組的單一標準。

它會給:


public static void main(String[] args) {


    String inputString = "1+3,432.123*4535-24.4";

    String currentSequence = "";


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


        char currentChar = inputString.charAt(i);

        if (Character.isDigit(currentChar)) {

            currentSequence += currentChar;

            continue;

        }

        System.out.println(currentSequence);

        System.out.println(currentChar);

        currentSequence = "";

    }


    // print the current sequence that is a number if not printed yet

    if (!currentSequence.equals("")) {

         System.out.println(currentSequence);

    }


}

Character.isDigit()依賴于 unicode 類別。

您可以自己編寫代碼,例如:


if (Character.getType(currentChar) == Character.DECIMAL_DIGIT_NUMBER) {...}

或者,您可以通過檢查 的int值char是否包含在數(shù)字的ASCII十進制值范圍內,在較低級別對其進行編碼:


if(currentChar >= 48 && currentChar <= 57 ) {

它輸出你想要的:


1


+


3


,


432


.


123


*


4535


——


24


.


4


查看完整回答
反對 回復 2021-09-15
?
瀟瀟雨雨

TA貢獻1833條經(jīng)驗 獲得超4個贊

這比你想象的要容易。


首先:要獲取包含字符串字符的數(shù)組,您只需使用toCharArray()所有字符串都具有的方法。

前任。myString.toCharArray()


第二:當你看到一個字符不是數(shù)字時,你想移動到下一行,打印字符,然后再次移動到下一行。


以下代碼正是這樣做的:



public class JavaApplication255 {



public static void main(String[] args) {


    String inputString = "1+3,432.123*4535-24.4";   


    char[] destArray = inputString.toCharArray();


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

        char c = destArray[i];


        if (isBreakCharacter(c)){

            System.out.println("\n" + c);

        } else {

            System.out.print(c);

        }


    }

}


public static boolean isBreakCharacter(char c){

    return c == '+' || c == '*' || c == '-' || c == '.' || c == ',' ;


查看完整回答
反對 回復 2021-09-15
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

這是一個可能的解決方案,我們逐個字符地添加到將成為我們的數(shù)字的現(xiàn)有字符串中,或者將字符串添加到數(shù)組中,清除當前數(shù)字,然后添加特殊字符。最后,我們遍歷數(shù)組的次數(shù)與找到數(shù)字或非數(shù)字字符的次數(shù)相同。我使用 ASCII 表將字符識別為數(shù)字,該表將在您的整個編程生涯中派上用場。最后,我將數(shù)組更改為字符串數(shù)組,因為字符不能包含“432”之類的數(shù)字,只能包含“4”或“3”或“2”。


String inputString = "1+3,432.123*4535-24.4";


int stringLength = inputString.length();    


String[] destArray = new String[stringLength];

int destArrayCount = 0;

String currentString = "";

for (int i=0; i<stringLength; i++)

{

    //check it's ascii value if its between 0 (48) and 9 (57)

    if(inputString.charAt(i) >= 48 && inputString.charAt(i) <= 57 )

    {

        currentString += inputString.charAt(i);

    }

    else

    {

        destArray[destArrayCount++] = currentString;

        currentString = "";

        //we know we don't have a number at i so its a non-number character, add it

        destArray[destArrayCount++] = "" + inputString.charAt(i);

    }

}

//add the last remaining number

destArray[destArrayCount++] = currentString;


for(int i = 0; i < destArrayCount; i++)

{

    System.out.println("(" + i + "): " + destArray[i]);

}

重要- 如果使用某種類型的字符串,此算法將失敗。你能找到這個算法失敗的字符串嗎?你能做些什么來確保計數(shù)總是正確的,而不是有時比實際計數(shù)大 1?


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號