取得したい結果を先にいうと、値段表示で、¥120,000とか一般的に表示されますよね。この中に表示されている「,」カンマだけの数をカウントするメソッドを作成したいのですが、どのような方法で作成すればよいかが分かりません。値段は上記以外の表示の場合も考慮します。
例 ¥145 (カンマ無し)
¥500,000,000,000,000 (複数のカンマあり)など
public int count(String nedan){
int canma;
StringBuffer sb = new String(nedan);
int len = sb.length();
カンマだけの個数を計り結果をreturn canma;で返したいのですが、どうすればよいでしょうか?
No.3ベストアンサー
- 回答日時:
入力値に誤りが起こり得る状況なのかが判らないのですが、無いと仮定すると(笑)
public int count(String nedan) {
StringTokenizer st = new StringTokenizer(nedan,",") ;
int canma = st.countTokens()-1 ;
return canma ;
}
とすれば区切り数を数える事が出来ると思います。
先頭や末尾に「,」があった場合は無視しますし、連続で区切りがあった場合は(「,,」とか)1つとしてカウントしてくれます。
希望があれば「、」(全角)と「,」(半角)を同一視するのも可能だし。
問題は、¥の直後に「,」があった場合ですかね、、。
まぁ、でも文字を分割しておけば、その手の処理も簡単に出来ると思いますよ。
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で試してます。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# C言語 3 2022/11/09 13:27
- Java javaのCSVデータ読込についてです 6 2022/07/02 10:58
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaで電卓を作りたい
-
JAVA エラー 式の開始が不正で...
-
全組み合わせの出力
-
ビープ音をなめらかに鳴らしたい
-
Javaで改行などが出来ないのです。
-
IF関数でEmpty値を設定する方法。
-
応用情報技術者試験の令和元年...
-
論理演算子”||”またはの入力方法
-
ダブルクォーテーションのrepla...
-
Javaでお絵描きソフトを作りた...
-
byte[] を long,float とかに...
-
VBSエラー"オブジェクト型の変...
-
javaです。1月1日から日数入れ...
-
ArrayListの要素数の上限
-
ページング
-
パソコンキーボードで時分秒を...
-
エクセルで小数の中の最大値を...
-
ArrayListからBean配列に値をセ...
-
Javaで文字と数字が混ざったも...
-
Javaのコマンドライン引数を使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
式の型は配列型で int に解決済...
-
「配列定数は、イニシャライザ...
-
intが負の時に投げる例外はあり...
-
javaでカレンダー作成
-
メインが含まれていません
-
JAVA エラー 式の開始が不正で...
-
javaでcsvファイル読込時の改行...
-
Javaで電卓を作りたい
-
(Swing)JTextFieldを半角のみ入...
-
javaのエラーの意味がわかりま...
-
「WorkImage.getGraphics()」が...
-
初心者ですが、今javaで簡単な...
-
sin曲線とcos曲線を描くプログ...
-
java spring でエラーが出て困...
-
SwingでJtableのヘッダ行が表示...
-
Java 初心者 int型の取り扱い方
-
DataSet(DataTable)の使い方
-
JAVAでCの関数ポインタのような...
-
6桁の数字を重複なしでランダム...
-
JAVA EOFの検出 (条件文で「...
おすすめ情報