Даданне некалькіх аперанд ў арыфметычным выразе ў Java String,

Да гэтага часу, у мяне ёсць код, які разбірае два розных радкі аперанды ў два разы, і дадае іх разам

Як я магу змяніць яго так, што ён можа дадаць любую колькасць радкі аперанда?

double addMultipleDigits(String exp)
    {
        ArrayList wholeExpression  = new ArrayList();
        double answer = 0;
        for(int i=0;i
1
Ці можа быць «-» ў ехр таксама?
дададзена аўтар Captain Giraffe, крыніца
Ці можа быць «-» ў ехр таксама?
дададзена аўтар Captain Giraffe, крыніца
Згодны, гэты метад будзе пашыраны, каб паспрабаваць быць калькулятар гатункаў, або што-небудзь падобнае?
дададзена аўтар ajp15243, крыніца
Згодны, гэты метад будзе пашыраны, каб паспрабаваць быць калькулятар гатункаў, або што-небудзь падобнае?
дададзена аўтар ajp15243, крыніца
Згодны, гэты метад будзе пашыраны, каб паспрабаваць быць калькулятар гатункаў, або што-небудзь падобнае?
дададзена аўтар ajp15243, крыніца
Так гэтае пытанне 's прыняў адказ, верагодна, карысна.
дададзена аўтар ajp15243, крыніца
Так гэтае пытанне 's прыняў адказ, верагодна, карысна.
дададзена аўтар ajp15243, крыніца
Так гэтае пытанне 's прыняў адказ, верагодна, карысна.
дададзена аўтар ajp15243, крыніца
OP просіць, каб дадаць любы лік <�я> аперанды у аднаго радка аргументу - ня функцыя, каб прыняць любую колькасць аб'ектаў Java String.
дададзена аўтар Andy Thomas, крыніца
OP просіць, каб дадаць любы лік <�я> аперанды у аднаго радка аргументу - ня функцыя, каб прыняць любую колькасць аб'ектаў Java String.
дададзена аўтар Andy Thomas, крыніца
OP просіць, каб дадаць любы лік <�я> аперанды у аднаго радка аргументу - ня функцыя, каб прыняць любую колькасць аб'ектаў Java String.
дададзена аўтар Andy Thomas, крыніца

10 адказы

Зменіце подпіс, каб дадаць з пераменным лікам аргументаў.

double addMultipleDigits(String... exp)

Ён можа быць апрацаваны ў целе метаду як масіў String.

8
дададзена
Дзіўны, ніколі не ведаў, як зрабіць гэта раней, заўсёды казаў сабе, што я хацеў бы паглядзець яго ...
дададзена аўтар Christian Stewart, крыніца
Заўвага для user2297666: з гэтай запісам, калі вы хочаце паставіць іншыя аргументы, «Радок ...» павінна быць апошняй
дададзена аўтар Arnaud Denoyelle, крыніца
Я павінен мець параметр як адну суцэльную радок. г.зн. 1 + 5 + 10
дададзена аўтар user2297666, крыніца
дададзена аўтар ajp15243, крыніца
@ User2297666 яны ці <�я> Папрасіць будзе прыняты ў якасці адзінага Радок ? Ці вы можаце не толькі дадаць кожны асобны Радок у масіве на адзін Радок ў пачатку вашага метаду?
дададзена аўтар ajp15243, крыніца

Зменіце подпіс, каб дадаць з пераменным лікам аргументаў.

double addMultipleDigits(String... exp)

Ён можа быць апрацаваны ў целе метаду як масіў String.

8
дададзена
Дзіўны, ніколі не ведаў, як зрабіць гэта раней, заўсёды казаў сабе, што я хацеў бы паглядзець яго ...
дададзена аўтар Christian Stewart, крыніца
Заўвага для user2297666: з гэтай запісам, калі вы хочаце паставіць іншыя аргументы, «Радок ...» павінна быць апошняй
дададзена аўтар Arnaud Denoyelle, крыніца
Я павінен мець параметр як адну суцэльную радок. г.зн. 1 + 5 + 10
дададзена аўтар user2297666, крыніца
@ User2297666 яны ці <�я> Папрасіць будзе прыняты ў якасці адзінага Радок ? Ці вы можаце не толькі дадаць кожны асобны Радок у масіве на адзін Радок ў пачатку вашага метаду?
дададзена аўтар ajp15243, крыніца
дададзена аўтар ajp15243, крыніца

Зменіце подпіс, каб дадаць з пераменным лікам аргументаў.

double addMultipleDigits(String... exp)

Ён можа быць апрацаваны ў целе метаду як масіў String.

8
дададзена
Дзіўны, ніколі не ведаў, як зрабіць гэта раней, заўсёды казаў сабе, што я хацеў бы паглядзець яго ...
дададзена аўтар Christian Stewart, крыніца
Заўвага для user2297666: з гэтай запісам, калі вы хочаце паставіць іншыя аргументы, «Радок ...» павінна быць апошняй
дададзена аўтар Arnaud Denoyelle, крыніца
Я павінен мець параметр як адну суцэльную радок. г.зн. 1 + 5 + 10
дададзена аўтар user2297666, крыніца
@ User2297666 яны ці <�я> Папрасіць будзе прыняты ў якасці адзінага Радок ? Ці вы можаце не толькі дадаць кожны асобны Радок у масіве на адзін Радок ў пачатку вашага метаду?
дададзена аўтар ajp15243, крыніца
дададзена аўтар ajp15243, крыніца

Падобна на тое, вы хочаце зменныя аргументы:

double addMultipleDigits(String... expressions)

Элемент выразы параметр тут проста звычайны масіў, так што вы можаце выкарыстоўваць .length і г.д.

Тады вы можаце назваць гэта альбо з масівам ў відавочным выглядзе, або проста некалькі аргументаў:

addMultipleDigits("123", "456");
6
дададзена
@ User2297666: Чаму ты не сказаў так, каб пачаць? Ваша пытанне канкрэтна прасіў некалькі радкоў. Такім чынам, вы можаце атрымаць адзін радок ... што ваш пытанне, <�я> дакладна </я>?
дададзена аўтар Jon Skeet, крыніца
Я павінен мець параметр як адну суцэльную радок. г.зн. 1 + 5 + 10
дададзена аўтар user2297666, крыніца

Сінтаксічны і ацэнкі выразаў з'яўляецца тое, што не павінна быць зроблена без правільнага тэарэтычнага падмурка (я ніколі не думаў, што я б сказаў, што). Вы павінны даведацца аб лексерах і аналізатары, і як яны працуюць. Пасля таго, як вы зрабілі дрэва разбору ад вашага ўваходу вы можаце ацаніць яго, або ацаніць яго радным.

2
дададзена

Сінтаксічны і ацэнкі выразаў з'яўляецца тое, што не павінна быць зроблена без правільнага тэарэтычнага падмурка (я ніколі не думаў, што я б сказаў, што). Вы павінны даведацца аб лексерах і аналізатары, і як яны працуюць. Пасля таго, як вы зрабілі дрэва разбору ад вашага ўваходу вы можаце ацаніць яго, або ацаніць яго радным.

2
дададзена

Усе адказы кажуць правільна інфармацыя, каб выкарыстоўваць пераменны лік arguement. Але accorind на Ваш каментар, здаецца, вы хочаце мець параметр у адным радку, як 1 + 5 + 10.

Лепш, калі вы выкарыстоўваеце, але з пераменным лікам аргументаў гэта неабходна для таго, каб выкарыстоўваць адзін радок, то вы можаце выкарыстоўваць StringTokenizer . Напрыклад

     StringTokenizer st = new StringTokenizer("1+2+3","+");
     while (st.hasMoreTokens()) {
         String s = st.nextToken();//s is the separated string.
     }
1
дададзена

Усе адказы кажуць правільна інфармацыя, каб выкарыстоўваць пераменны лік arguement. Але accorind на Ваш каментар, здаецца, вы хочаце мець параметр у адным радку, як 1 + 5 + 10.

Лепш, калі вы выкарыстоўваеце, але з пераменным лікам аргументаў гэта неабходна для таго, каб выкарыстоўваць адзін радок, то вы можаце выкарыстоўваць StringTokenizer . Напрыклад

     StringTokenizer st = new StringTokenizer("1+2+3","+");
     while (st.hasMoreTokens()) {
         String s = st.nextToken();//s is the separated string.
     }
1
дададзена

Вы можаце знайсці больш падрабязную інфармацыю тут зменныя аргументы.

 void foo(String... args) 
 {
    for (String s : args) 
    {
        System.out.print(s);
    }
 }
0
дададзена

Вы можаце знайсці больш падрабязную інфармацыю тут зменныя аргументы.

 void foo(String... args) 
 {
    for (String s : args) 
    {
        System.out.print(s);
    }
 }
0
дададзена