• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JSPのアルゴリズムで質問)

JSPのアルゴリズムで値段表示のカンマの数をカウントする方法

このQ&Aのポイント
  • JSPのアルゴリズムを使用して、値段表示の中に含まれるカンマの数をカウントするメソッドを作成したいです。
  • 値段表示には、複数のカンマが含まれる場合やカンマがない場合も考慮する必要があります。
  • String型の値段データを受け取り、カンマの数を数えて結果を返すメソッドを実装したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • takaP-
  • ベストアンサー率79% (83/105)
回答No.3

入力値に誤りが起こり得る状況なのかが判らないのですが、無いと仮定すると(笑) public int count(String nedan) { StringTokenizer st = new StringTokenizer(nedan,",") ; int canma = st.countTokens()-1 ; return canma ; } とすれば区切り数を数える事が出来ると思います。 先頭や末尾に「,」があった場合は無視しますし、連続で区切りがあった場合は(「,,」とか)1つとしてカウントしてくれます。 希望があれば「、」(全角)と「,」(半角)を同一視するのも可能だし。 問題は、¥の直後に「,」があった場合ですかね、、。 まぁ、でも文字を分割しておけば、その手の処理も簡単に出来ると思いますよ。

o-iocha
質問者

お礼

StringTokenizer()で数えられるですね。 カンマの数を上手く数えることが出来ました。ありがとうございます。

その他の回答 (2)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

単に数えるだけのものですが、こんなのは? import java.util.*; public class test { public static int count_char( String s, char c ){ int n = 0; int pos = 0; while ( (pos = s.indexOf( c, pos ) + 1 ) > 0 ){ n++; } return n; } public static void t( String s ){ System.out.println( s + " = " + count_char( s, ',' ) ); } public static void main (String args[]) { t( "123" ); t( "1,2,3" ); t( "12,,3," ); t( ",," ); t( "," ); t( "" ); } } なんか、VBとかのコードみたいですが。 Java1.3.1+Mac OS X 10.1.5で試してます。

  • nomad76
  • ベストアンサー率33% (1/3)
回答No.1

カンマのつづりをcommaと修正させていただいた上で、テスト用のmainメソッドもつけて、クラス全体のサンプルを以下に示します。 正直言って良いプログラムとは言えません。というのも、カンマをカウントするというだけで、数字の間にあるカンマか、半角のカンマか、などの例外的な処理が何も入っていないからです。 public class commacount { public commacount() { } public int count(String s){ StringBuffer sb = new StringBuffer(s); int comma = 0; int len = sb.length(); for (int i=0; i<len; i++) { if (sb.charAt(i) == ',') comma++; } return comma; } public static void main (String args[]) { commacount cc = new commacount(); int ret = cc.count("123,456"); System.out.println(ret); ret = cc.count(",,,,,"); System.out.println(ret); } }

関連するQ&A