java中如何循环输出一个值就放到一个变量中

publicstaticvoidmain(String[]args){Stringline1,line2,line3,line4,line5;Stringstr=Stri... public static void main(String[] args) {
String line1, line2, line3, line4, line5;
String str = String str = "<row type=\"singletextline\" caption=\"Name\" ID=\"123\" CurrentValue=\"1\" others=\"width=10\"/>" ;
int idx = str.indexOf("\"") ;
int nextIdx = str.indexOf("\"", idx + 1) ;
while( idx!=-1 && nextIdx!=-1 ) {
System.out.println( str.substring(idx +1 , nextIdx ) ) ;
idx = str.indexOf("\"",nextIdx +1 ) ;
nextIdx = str.indexOf("\"", idx +1 ) ;
}
}
上面代码将输出:
singletextline
Name
123
1
width=10
需要输出 line1=singletextline
line2=Name
line3= 123 ......
用List<String> list=new ArrayList<String>();吗?该怎么写,菜鸟求指导~
展开
 我来答
wo317458719
推荐于2018-04-12 · TA获得超过105个赞
知道答主
回答量:35
采纳率:0%
帮助的人:47.9万
展开全部
//方法很多,1楼是最小改动。
public static void main(String[] args) {
//将这几个变量改为Map。String line1, line2, line3, line4, line5;
Map map = new HashMap();
//定义一个计数器变量
int index=0;
String str = String str = "<row type=\"singletextline\" caption=\"Name\" ID=\"123\" CurrentValue=\"1\" others=\"width=10\"/>" ;
        int idx = str.indexOf("\"") ;
        int nextIdx = str.indexOf("\"", idx + 1) ;
        while( idx!=-1 && nextIdx!=-1 ) {
            //这里用"line"+index做为map的key
            map.put("line"+index,str.substring(idx +1 , nextIdx  ))
            //计数器递增
            index++;
            //System.out.println( str.substring(idx +1 , nextIdx  )  ) ;
            idx = str.indexOf("\"",nextIdx +1 ) ;
            nextIdx = str.indexOf("\"", idx +1 ) ;
        }
        //这里遍历map
        for(Iterator it = map.entrySet().iterator();it.hasNext();){
            Map.Entry entry = it.next();
            System.out.println(entry.getKey()+"="entry.getValue()) ;
        }
    }
我有可爱的漏风棉袄
2013-06-27 · 超过26用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:64.8万
展开全部
public static void main(String[] args) {
  Map<String,Object> maps = new HashMap<String,Object>();
  String str = "<row type=\"singletextline\" caption=\"Name\" ID=\"123\" CurrentValue=\"1\" others=\"width=10\"/>" ;       
  int idx = str.indexOf("\"") ;        
  int nextIdx = str.indexOf("\"", idx + 1) ;   
  int i=0;
  while( idx!=-1 && nextIdx!=-1 ) {     
   i++;
   System.out.println( str.substring(idx +1 , nextIdx  )  ) ;         
   maps.put("line"+i,str.substring(idx +1 , nextIdx  ) );
   idx = str.indexOf("\"",nextIdx +1 ) ;            
   nextIdx = str.indexOf("\"", idx +1 ) ;       
  } 
  Set<String> keys = maps.keySet();
  for(String s:keys){
   System.out.println(s+" = " + maps.get(s));
  }
 }

加点难度

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qi_ling2005
2013-06-27 · TA获得超过500个赞
知道小有建树答主
回答量:468
采纳率:0%
帮助的人:275万
展开全部

不用。直接加个变量i。

public static void main(String[] args) {
String line1, line2, line3, line4, line5;
int i = 1;
String str = String str = "<row type=\"singletextline\" caption=\"Name\" ID=\"123\" CurrentValue=\"1\" others=\"width=10\"/>" ;
        int idx = str.indexOf("\"") ;
        int nextIdx = str.indexOf("\"", idx + 1) ;
        while( idx!=-1 && nextIdx!=-1 ) {
            System.out.println( "line"+i+"="+str.substring(idx +1 , nextIdx  )  ) ;
            idx = str.indexOf("\"",nextIdx +1 ) ;
            nextIdx = str.indexOf("\"", idx +1 ) ;
            i++;
        }
    }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8fa7283
2013-06-27 · 超过21用户采纳过TA的回答
知道答主
回答量:83
采纳率:50%
帮助的人:46万
展开全部
先格式化代码再贴出来好吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式