検索して持ってきた数値をfor文に使う方法

このQ&Aのポイント
  • 現在、ある組織に所属した人間の数と名前を調べ、その所属した人間がある業務に該当しているかどうかを調べる処理を作成しています。
  • 調べてきた数値をfor文で処理するためには、String形式の値をintに変換する必要があります。
  • javaでStringをintに変換する方法についてご教示いただけないでしょうか?
回答を見る
  • ベストアンサー

検索して持ってきた数値をfor文に使いたい

urizakaです。 現在、ある組織に所属した人間の数と名前を調べ、その所属した人間がある業務に該当しているかどうかを調べるという処理を作っています。その際に調べてきた数理まで処理を行うという処理を作るためにfor文を使おうと思っているのですが、 調べてきた数値というのは、 String c_code_staff = new String(); public void searchFlag1(){ int num; String sf1Stmt = "select count(*) from m_staff where code_org='" + s_code_org +"'"; try{ open(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sf1Stmt); while (rs.next()){ c_code_staff = rs.getString(1); } rs.close(); stmt.close(); close(); } catch(SQLException ex){ System.out.println("searchFlag1のDBエラー : " + ex); System.out.println("searchFlag1のSQL" + sf1Stmt); } catch(java.lang.Exception ex){ System.out.println("searchFlag1のDB ErrorB : " + ex); } } という処理を使うため、STRING形になっているので、このままではfor文には 代入できない状態です。c_code_staffをintで宣言という手も考えたのですが、intでは宣言できなかったため、駄目でした…  すみませんが、javaでStringをintに変換する方法についてご存知の方宜しくお願いします。

  • Java
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • airone
  • ベストアンサー率50% (1/2)
回答No.1

int i= Integer.parseInt(c_code_staff); でString型をintに変換できます。 こんなんじゃ、駄目でしょうか?

関連するQ&A

  • JDBC PostgreSQLで必要なファイルはあるのでしょうか?

    LinuxでPostgreSQLのデータベースをJDBCでアクセスしたいのですが、以下のソースで次のエラーが発生します。何か必要なファイルでもあるのでしょうか? java.lang.ClassNotFoundException:org.postgres.Driver また、LinuxのODBCも必要なファイルがあるのでしょうか? import java.sql.*; class jdbcSample2 { public static void main(String argv[]) { int a; String b; try { //Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); //String url = "jdbc:odbc:test"; Class.forName ("org.postgres.Driver"); String url = "jdbc:postgresql://127.0.0.1:5432/test"; String user = ""; String password = ""; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement (); String query = "select * from member;"; ResultSet rs = stmt.executeQuery (query); while(rs.next()){ a = rs.getInt(1); b = rs.getString(2); System.out.println(a + ", " + b); } rs.close(); stmt.close(); con.close(); } catch (SQLException ex) { System.err.println("SQL failed."); ex.printStackTrace (); } catch (Exception ex) { ex.printStackTrace (); } } }

  • ユーザ管理システムについて・・・

    現在、登録したユーザアカウントのIDとパスワードを利用してログイン出来るシステムを作成しようとしています。 おそらく「JSP」と「ControllerServlet.java」部分は問題ないと思うのですが「ModelBean.java」に何か問題はあるのでしょうか? <ModelBean.java>は // パッケージの宣言 package myPackage; import java.sql.*; public class ModelBean implements java.io.Serializable{ // privateなプロパティの宣言 private String id; private String pass; private String name; private String aflg; private String process; private String processMessage; private Connection con; private Statement stmt; private String url = "jdbc:mysql://localhost/shopping_db?useUnicode=true&characterEncoding=Shift_JIS"; private String user = "root"; private String password = "123"; private String query = ""; // JavaBeansのコンストラクタの宣言 public ModelBean(){id=""; pass=""; name=""; aflg=""; process="0";} // IDを取得する処理 public String getId(){ return id; } // パスワードを取得する処理 public String getPass(){ return pass; } //名前を取得する処理 public String getName(){ return name; } //アクセス権限を取得する処理 public String getAflg(){ return aflg; } // 処理内容を取得する処理 public String getProcess(){ if (process.equals("2")){ processMessage = "データを登録しました";} else if(process.equals("3")){ processMessage = "下記データを更新しました";} else if(process.equals("4")){ processMessage = "下記データを削除しました";} else if(process.equals("1")){ processMessage = "ユーザーの一覧を表示しました";} else { processMessage = "データ表示画面";}//初期画面 System.out.println("process="+process); System.out.println("processMessage="+processMessage); return processMessage; } public void setProcess(String getProcess){ this.process = getProcess; } // DB接続処理 private void jdbcOpen(){ try{ // JDBCドライバをロードする Class.forName("org.gjt.mm.mysql.Driver"); // DB接続(ODBCデータソースの指定) System.out.println("url="+url); System.out.println("user="+user); System.out.println("password="+password); con = DriverManager.getConnection(url,user,password); stmt = con.createStatement(); } catch (Exception ex) { ex.printStackTrace ();} } // DBクローズ処理 private void jdbcClose(){ try{ stmt.close(); con.close(); } catch (Exception ex) { ex.printStackTrace ();} } // データ読み取り処理 public void selectDatas(String getId) { this.id=getId; jdbcOpen(); try{ // SQL文生成 query = "SELECT * FROM loginuser WHERE id="+id; System.out.println("select query"+query); // 実行 ResultSet rs = stmt.executeQuery(query); // 結果取得 rs.next(); id = rs.getString("id"); pass = rs.getString("pass"); name = rs.getString("name"); aflg = rs.getString("aflg"); rs.close(); } catch (Exception ex) { ex.printStackTrace ();} jdbcClose(); } //新規データ追加処理 public void addDatas(String getId, String getPass, String getName, String getAflg){ this.id=getId; this.pass=getPass; this.name=getName; this.aflg=getAflg; jdbcOpen(); try{ //------------------- // 登録処理 //------------------- // SQL文生成(登録) query = "INSERT INTO loginuser (id, pass, name, aflg) VALUES("+id+", '"+pass+"', '"+name+"', '"+aflg+"') "; // 実行 int flgUpdated = stmt.executeUpdate(query); } catch (Exception ex) { ex.printStackTrace ();} jdbcClose(); } 登録実行部分のプログラムのどこを変えたら動くようになるでしょうか?よろしくお願いします。

  • JSPでデータベースにファイルを挿入するとエラー

    urizakaです さて、現在SQL-ServerのimageフィールドにJSPで指定したデータを入力するというプログラムを組んでいるのですが、ストリームから出力したデータをデータベースに入力しようとすると以下のようなSQLExceptionが出てしまいます。 「End of InputStream reached before satisfying length specified when InputStream was set」  これって、いったいどういうエラーなのでしょうか?  自分でも調べてみたのですが、ファイルのアップロードのプログラムを今回始めてやるせいもあってちんぷんかんぷんです。  尚、ソースコードは以下のようになっております。  public void upFile(InputStream InSte){ String ufStmt = "insert into m_File (tempfile) values(?)"; int num; try{ open(); PreparedStatement stmt = con.prepareStatement (ufStmt); stmt.setBinaryStream(1,InSte,1024); num = stmt.executeUpdate(); stmt.close(); close(); } catch(SQLException ex){ System.out.println("upFileのSQLエラー" + ex); System.out.println(ufStmt); } catch(java.lang.Exception ex){ System.out.println("upFileのエラーB " + ex); } }  すみませんが、宜しくお願いします。

  • mysqlへの接続が出来ません

    まずは、サンプルプログラミングをコピーして実行してみましたが、上手くいきません。 package Connection; import java.sql.*; public class DBtest { public static void main(String[] args) { //java.sql Connection con = null; Statement stmt = null; ResultSet rs = null; String sqlStr; try { //ドライバクラスをロードする Class.forName("org.gjt.mm.mysql.Driver"); //MySQLに接続 con = DriverManager.getConnection("jdbc:mysql://localhost/dbname", "8080", "password"); //ステートメント生成 stmt = con.createStatement(); //SQL文 sqlStr = "SELECT * FROM TABLE"; //SQL文実行 rs = stmt.executeQuery(sqlStr); //検索結果数だけループ while(rs.next()){ //レコードの値 int id = rs.getInt("ID"); String name = rs.getString("NAME"); //表示 System.out.println(id + ":" + name); } //クローズ rs.close(); stmt.close(); con.close(); } catch (Exception ex) { try { //クローズ if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (con != null) con.close(); } catch (Exception e) { } //エラー ex.printStackTrace(); } } } 上記はEclipseでは文法エラーはありません。で実行してみると java.sql.SQLException: Access denied for user '8080'@'localhost' (using password: YES)になります。 サンプルにはDbname、ID,Passとあるので実際のDbnameとパスワードを入れているのですが駄目です。 IDは意味が良くわからないので8080を入れてみました。 どなたか教えて下さい。お願いします。 尚、当方全くの初心者です宜しくお願い致します。

    • ベストアンサー
    • Java
  • Java for文

    for文について、キーボードで入力して、その数が素数(1またはその数以外で割り切れない数)であるかを判断するコードですが、for文とif文の関係が良くわかりません。ご教示ください。 <サンプル> public static void main(String[] args) throws IOException{ System.out.println("2以上の整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); ※1 for(int i=2; i<=num; i++){ if(i == num){ System.out.println(num + "は素数です。"); ※2 }else if(num % i == 0){ System.out.println(num + "は素数ではありません。"); break; ※1と※2の処理について初心者でもわかるような解説をおねがいできますでしょうか? よろしくお願いいたします。

  • throw文について

    上と下のソースプログラムがよく似ているのにもかかわらず上記のプログラムでコンパイルエラー発生する理由がわかりません。 解決方法はpublic static void badMethod()throws IOException{に書き換えるということが分かっていますがイマイチ理屈が分からない次第であります。 たぶん、上記のプログラムはimport文があるからだと思うのですが回答のほどよろしくお願い致します。 (コンパイルエラー) import java.io.IOException; class TryCatch{ public static void main(String args[]){ try{ badMethod(); System.out.println("A"); } catch(IOException ex){ System.out.println("B"); } catch(Exception e){ System.out.println("C"); } System.out.println("E"); } public static void badMethod(){ throw new IOException(); } } (コンパイル正常) public class X{ public static void main(String args[]){ try{ badMethod(); System.out.println("A"); } catch(Exception ex){ System.out.println("B"); } finally{ System.out.println("C"); } System.out.println("D"); } public static void badMethod(){ throw new RuntimeException(); } }

  • postgresql接続時

    お世話になっています。 現在、postgresqlに接続し、指定のデータがなければ、dbを切断し、 切断中に、dbに接続されたら、エラーを発生させるようなプログラムを作成しています。 その際、org.postgresql.util.PSQLException: This ResultSet is closed.のようなエラーが発生します。 原因として、ResultSetにあるというのはわかるのですが、 ソースは、以下のように組んでいます。 static Connection con = null; static Statement stmt = null; static ResultSet rs ;; try { Class.forName("org.postgresql.Driver"); // PostgreSQLの場合 con = DriverManager.getConnection ("jdbc:postgresql:sample","moon","post"); // ステートメントオブジェクトを生成 stmt = con.createStatement(); String sql = " select id,pw from login where id='test' and pw='a'"; System.out.println(sql); // クエリーを実行して結果セットを取得 rs = stmt.executeQuery(sql); boolean ba = rs.next(); //もし、idがなければ、dbを閉じる if(ba == false) { System.out.println("rs:"+rs.next()); stmt.close(); con.close(); rs.close(); } catch (SQLException e) { } catch (ClassNotFoundException c) { } catch(Exception es) { } finally { } //この時点で、指定のid,pwが存在していないので、dbは切断中 //この状態でdbにアクセスする String sql = " select * from login"; // クエリーを実行して結果セットを取得 try { // ここから if(con !=null && stmt != null && rs !=null) { while(rs.next()) { System.out.println(rs.getString("id")); } }//ここまでが、何かがおかしい else {} } catch (SQLException e) {} この場合、どこが間違っているのでしょうか? 宜しくお願いします。

  • Javaでデータベースの内容をGUIで表示したい

    お世話になります。 SQL文で発行された内容をJListでリスト化して表示したいです。 コマンドライン上で内容を表示することは出来ていますが、上手くGUIで表示できません。 簡単に言えば、以下の2つのプログラムを組み合わせたいです。宜しくお願い致します。 // JListプログラム // import java.awt.*; import javax.swing.*; import javax.swing.event.*; class JListTest extends JFrame implements ListSelectionListener { JListTest() { getContentPane().setLayout(new FlowLayout()); String[] data = { "ListA", "ListB", "ListC", "ListD" }; JList lst = new JList(data); lst.addListSelectionListener(this); getContentPane().add(lst); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("JListTest"); setSize(200, 120); setVisible(true); } public void valueChanged(ListSelectionEvent e) { JList lst = (JList)e.getSource(); System.out.println(lst.getSelectedValue()); } public static void main(String[] args) { new JListTest(); } } // SQLプログラム // import java.sql.*; class DbTest { public static void main(String[] args) { int id; String name; try { // JDBCドライバの登録 String driver = "org.postgresql.Driver"; // データベースの指定 String server = "192.168.1.0"; // PostgreSQL サーバ ( IP または ホスト名 ) String dbname = "test"; // データベース名 String url = "jdbc:postgresql://" + server + "/" + dbname; String user = "test"; //データベース作成ユーザ名 String password = "xxxxxxxxxx"; //データベース作成ユーザパスワード Class.forName (driver); // データベースとの接続 Connection con = DriverManager.getConnection(url, user, password); // テーブル照会実行 Statement stmt = con.createStatement (); String sql = "SELECT * FROM test"; ResultSet rs = stmt.executeQuery (sql); // テーブル照会結果を出力 while(rs.next()){ id = rs.getInt("num"); name = rs.getString("name"); System.out.println(id); System.out.println(name); } // データベースのクローズ rs.close(); stmt.close(); con.close(); } catch (SQLException e) { System.err.println("SQL failed."); e.printStackTrace (); } catch (ClassNotFoundException ex) { ex.printStackTrace (); } } }

  • java ネストしたfor文について

    ***** **** *** ** * 上のように*が減るようにしたいのですが下のソースではどこが悪いか教えてください class TestGoo{ public static void main(String args[]){ for(int i = 5; i>=1; i--){ for(int j = 5;j>=1; j--){ System.out.print('*'); } System.out.println(); } } }

  • JAVAのfor文で困っています。

    JAVAの勉強をしていますが、本の練習問題でわからなくて困っています。for文で以下の処理を行いたいです(do,whileはなしです)が、 *を5個ごとに改行したいのですが、改行してくれません。 問題の部分↓ if (n % 5 == 0) System.out.println(); 何か良い方法はありませんか?お願いします。 ------------------------------------------------- //(数を読み込んで)だ個数だけ * を5個ごと改行しながら表示 int n = 0; for (int i = n; n <= 0;){ System.out.print("何個*を表示しますか : "); n = stdIn.nextInt(); } for (int i = 1; i <= n; i++){ System.out.print("*"); if (n % 5 == 0) System.out.println(); } ------------------------------------------------

    • ベストアンサー
    • Java

専門家に質問してみよう