• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストエリアの文字数を数えたい)

Java初学者のためのテキストエリアの文字数カウントアプリ

このQ&Aのポイント
  • Java初学者のために、テキストエリアの文字数をカウントするアプリを作成しようとしています。簡単な本を終えた後、自分の役に立つものを作ってみたいと思っています。
  • 具体的には、縦に2分割されたフレームに、文字数カウント、行数カウント、テキストの貼り付けなどのボタンを配置します。結果はラベルで表示されます。
  • 文字数のカウント方法については、テキストエリア内の文字列を直接扱う方法がわからないため、困っています。テキストエリアの文章をString型の変数に入れる方法があれば教えてください。

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

  • ベストアンサー
  • yama06
  • ベストアンサー率61% (101/164)
回答No.2

charAt(int)を使えば任意の位置の文字を取得できます。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/String.html#charAt(int) > for(i=0;ch[i]!='\0';i++){ > if (ch[i]=='\n'){count++;}} は、 // テキストエリア内の文章をString型の変数に入れる String str = text.getText(); // 数える for(int i = 0; i<str.length(); i++){ if(str.charAt(i) == '\n'){ count++; } } でいかがでしょうか。toCharArray()で配列を取得するという 方法もあります。 詳しくは下記のAPIリファレンスを参照してください。 (仕事では毎日何十回と使います)

参考URL:
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html
R-gray
質問者

お礼

ありがとうございます! 今を持って、どうにか完成させることが出来ました!感謝です。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yama06
  • ベストアンサー率61% (101/164)
回答No.1

現時点でのソースコードをお見せいただかないことには、 どなたも回答できないと思います。

R-gray
質問者

補足

肝心の内部的な処理が分からないので無意味に近いですが・・・晒してみます ********************************************************************* import javax.swing.*; import java.awt.*; import java.awt.event.*; public class PaperHelper{ /** *GUI部品を宣言 */ private JFrame frame = new JFrame("Paper Helper"); private JPanel panel = new JPanel(); private JButton btnCLetters = new JButton("Count letters"); private JButton btnCRow = new JButton("Count rows"); private JButton btnCBoth = new JButton("Count both"); private JButton btnAppend = new JButton("Append text"); private JButton btnReplace = new JButton("Replace text"); private JLabel labL = new JLabel("-- letters",JLabel.CENTER); private JLabel labR = new JLabel("-- rows",JLabel.CENTER); private JTextArea text = new JTextArea(); private JScrollPane scroll = new JScrollPane(text); private JMenuBar menubar = new JMenuBar(); private JMenu menuHelp = new JMenu("Help"); private JMenuItem sig = new JMenuItem("Signature"); //コンストラクタ(動作メイン部分) public PaperHelper(){ /** *frame,panel,textareaのレイアウト設定 */ frame.setLayout(new BorderLayout()); panel.setLayout(new GridLayout(7,1)); text.setLineWrap(false); /** *各GUI部品の関係を設定 */ frame.add(panel,BorderLayout.WEST); frame.add(scroll,BorderLayout.CENTER); panel.add(btnCLetters); panel.add(btnCRow); panel.add(btnCBoth); panel.add(labL); panel.add(labR); panel.add(btnAppend); panel.add(btnReplace); frame.setJMenuBar(menubar); menubar.add(menuHelp); menuHelp.add(sig); /** *frameのsize,visibleをセット */ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(600,800); frame.setVisible(true); /* *ボタンが押された時のアクション設定 */ //append text btnAppend.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ text.paste(); } }); //replace text btnReplace.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //?????????? } }); } public static void main(String[] args){ PaperHelper application = new PaperHelper(); } } ******************************************************************** 困っていることを再度強調しますと、Cだと文字列といえど文字の配列に過ぎなかったので 一文字一文字ダイレクトに扱えたのですが、Javaでそれをどうしたらいいかが分かりません。 行数を数えるのもCだと for(i=0;ch[i]!='\0';i++){ if (ch[i]=='\n'){count++;}} て感じにできるのはわかるのですが似たようなことをJavaでやるにはどうしたら。。。 ということで困っています。初心者丸出しで申し訳ないのですがお願いいたします。。。

すると、全ての回答が全文表示されます。

関連するQ&A