怎么把数组里面的值一个一个取出来并一个一个保存,比如:String[] name = {1,2,3};怎么保存1,2,3啊

String namea = "";
for(int i = 0;i<hw_name.length;i++){

}
hw_name数组 在我不知道他里面有多少值的情况下循环出来的值我想存到namea里怎么存?
比如里面有a b c 三个值 我想分别让String namea = "a";String namea = "b" String namea = "c"; 应该怎么写

你问题没描述清楚,取出来要保存到哪里去?是保存到List里面?还是咋地。我以保存到list里面为示例

package thinkinjava.io488;

import java.util.ArrayList;
import java.util.List;

public class MainTest {

    public static void main(String[] args) {
        String[] arr = { "a", "b", "c", "d", "e" };
        List<String> list = new ArrayList<String>(arr.length);
        // 取法1
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
            list.add(arr[i]);
        }
        // 取法2
        for (String str : arr) {
            System.out.println(str);
            list.add(str);
        }
    }
}

追问

保存到类型里 比如String a = ? b = ? c ?

追答

你有多少个这样的变量 我的意思是 字符数组的长度你知道不 要保存的类型变量有多少个事先定义了没? 吧这些值赋值给这些变量 是为了什么 你把题目说清楚嘛

追问

我想做一个批量添加 比如 user表里面有name id pwd 我前台form表单是提交过来的是 张三,1,123,李四,2,123 等等 input name是 u.name u.id u.pwd 我应该怎么做啊

追答

表单提交过来的么,那么一个input只对应一个name和一个id啊,你批量添加,比如你添加三个用户,每个用户包括三个信息(即name,id,pwd),那么你就应该是9个input输入标签,是这样的吧。所以我就想知道你是怎么把这9个input的值传到后台的。

或者,你只用三个input标签,在前台已经把值都组装好了?后台再解析,那么你也要把你组装好的信息贴出来看看嘛。

追问

我是后台get set user 前台input name u.user u.id u.pwd 我是这样写的 但是这样添加不了 我只能 在后台 String[] name String[] id String[] pwd 之后在做添加 但是数组取值的时候 就不知道怎么做了

追答

这样嘛,我建议你把一个用户信息组装起来,对应后台的一个String[]。那么String[]的值就是{name,id,pwd},这样你的String[]长度对你来说,是可知的,可预见的(这里是3),取值也直接取。
像你现在这样,name是一个数组,id是一个数组,pwd是一个数组,你取出来的值,很有可能对应不上,我的意思是,比如用户信息组是这样的:name1,id1,pwd1;name2,id2,pwd2;但是你可能保存时变成这样:name1,id2,pwd3;name2,id1,pwd1;这样乱了。

追问

是啊 现在我都已经乱不行的了 请问我应该怎么做

追答

如果是我 我可能是笨点 就直接在页面组装成一个字符串 传到后台 我会组装成这样的

name1|id1|pwd1,name2|id2|pwd2,name3|id3|pw3,...
然后再后台用一个变量接受这个字符串,再分解开来,用逗号split一下,然后得到一个数组,数组里面就是一个用户信息,再用|对值split一下,得到name、id和pwd。

追问

主要数据都是数据库查出来的 比如name pwd 都是s标签循环出来的 neme都是一样的 不能自己定义啊 我该怎么写呢

追答

你加q我和你聊吧2807266239

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-27
要怎么样保存呢?
String []name = {1,2,3};
int a , b , c;
a = name[0];
b = name[1];
c = name[2];追问

在不知道name里面有几个值的情况下 取出每个值在保存
比如循环取出:
for(int i = 0;i<name.lenght;i++){
name[i].toString;

}
int a = ? b = ? c = ?我应该怎么保存循环出来的值?

追答

把字符放在数组里面不是很好的保存方式么?你要保存在哪个地方呢?
保存到数据库或者是txt格式的文本中?或者直接System.out.println(name[i]);
保存到数据库的话就用JDBC连接到你的数据库然后将name中的值按照你的方式循环取出并依次存入数据库表中就行。保存到TXT记事本中的话就用FileWriter这个类的write()这个方法!

追问

我要保存到数据库 值在数组里面怎么保存到数据库啊

追答

存到数据库就简单了啊,不知道你是什么数据库,我这里就以MySQL数据库为例:

public class mysql_conn
{
public static void main(String[] args)
{
String[] name = {"1","2","3"};

String driverName = "com.mysql.jdbc.Driver";   // 加载驱动
//连接服务器和数据库   数据库名字是mysql_test,用户名和密码都是root!
String dbURL = "jdbc:mysql://localhost:3306/mysql_test?user=root&password=root";  
Connection dbConn;
try 
{

Class.forName(driverName);
dbConn= DriverManager.getConnection(dbURL);
System.out.println("连接成功");
Statement sql = dbConn.createStatement();

for(int i = 0;i<name.length;i++)
{
String insert ="insert into Test(number) values('"+name[i]+"')";         //数据库中表的名字是Test,字段只有一个number
sql.executeUpdate(insert);
}
}
catch ( Exception e)
{
e.printStackTrace();
}
}
}

追问

我用的是struts2写的 应该怎么写啊 循环加在DAO的添加方法里吗 还是在action里面写

追答

struts2应该不能连接数据库吧?需要用到hibernate才能关联数据库,Struts2控制前台,hibernate连接后台!!在Dao中写连接数据库的操作

第2个回答  2015-04-28
for(int i=0;i<4;i++) xx(char类型)=name[i]
第3个回答  2015-04-27
用循环吧。
String [] name = {"1","2","3"};
for (int i = 0; i < name.length; i++) {
System.out.println(name[i]);
}
这样可以?追问

我要的不是输出 是保存
String [] name = {"1","2","3"};
for (int i = 0; i < name.length; i++) {
System.out.println(name[i]);//这不是输出里面的值了吗
}
我的意思是在不确定name里面就3个值的情况下 比如说就两个值 那就 a b 存1或 2

追答

大概明白你的意思了,或许你可以这么做, 你可以在前台先将数据按照自己的要求封装好,利用js或者jq将每一行文本框(就是一个对象嘛)的信息组合好,比如:"name1,1,1;name2,2,2;name3,3,;"
然后你将这个字符串传到后台,后台用split(";")分割出来,就是一个对象,然后再以split(",")出来,再去赋值给对象,然后你就可以得到每个对象了,就可以操作了。 这里的话可能你需要注意传参数的时候get方式的话,可能会有长度的限制,不要太长了。 或者你在前台自己组装成JSON的格式,后台再去解析。

追问

主要数据都是数据库查出来的 比如name pwd 都是s标签循环出来的 neme都是一样的 不能自己定义啊 我该怎么写呢

追答

同样可以呀,比如你可以将文本框放在表格里,然后你用js或者jq得到每一行的数据,就是一个对象。,这种方式比较好做一点。当然你用别的也行,比如把文本框放在DIV中什么的,只是操作起DOM来麻烦一点而已。 这个应该和标签的name属性没什么关系吧,如果你想把name属性变的不一样,那你得在循环的时候给name属性加上下标,这样的话只是每一行的name是一样的,然后你在在前台获取后台数组的长度,然后循环,然后获取name+下标的值,这时候这是一个数组,然后你在循环就能获取到每个值了。 不知道你理解我的意思吗。。

本回答被网友采纳
相似回答