A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

95001178

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

6黑马币
public class Test_ArrayList {
        public static void main(String[] args) {
                //集合
                ArrayList<String> list = new ArrayList<String>();
                //录入键盘对象
                Scanner sc = new Scanner(System.in);
                //把录入的字符存进list数组中
                for (int i = 1; i <= 5; i++) {
                        System.out.println("输入第"+ i+"个字符串");
                        String line = sc.nextLine();
                        list.add(line);
                }
                  //在这里把list集合中字符串末尾为a的改成*
                //遍历集合
               for (String string : list) {
                        System.out.println(string);

最佳答案

查看完整内容

[mw_shl_code=java,true]import java.util.ArrayList; import java.util.Scanner; public class ItheimaArrayListQuestion1 { public static void main(String[] args) { //集合 ArrayList list = new ArrayList(); //录入键盘对象 Scanner sc = new Scanner(System.in); //把录入的字符存进list数组中 for (int i = ...

12 个回复

正序浏览
这个问题应该是用到了一个替换的方法
回复 使用道具 举报
for (int i = 0; i < al.size(); i++) {
                         if (al.get(i).endsWith("a")){        //  b:将list中字符串末尾是a的修改为末尾是0
                                                        //获取字符串,截取0到末尾-1 包头不包尾,再加个"0"字符串
                                String str = al.get(i).substring(0,al.get(i).length()-1 )+"0";
                                //替换功能
                                al.set(i, str);
                               
                        }
                }
回复 使用道具 举报
package com.hukun.test;

import java.util.ArrayList;
import java.util.Scanner;

public class Test_04 {
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入字符串 :");
        ArrayList<String> al = new ArrayList<>();
        while(al.size() < 5) {
                String line = sc.nextLine();
                if (line.endsWith("a")) {
                        String str = line.substring(0, line.length()-1) + "*";
                        al.add(str);
                }else {
                        al.add(line);
                }
        }
        for (String s : al) {
                System.out.println(s);
        }
}
}
回复 使用道具 举报
用索引把它改了不就完了吗?
回复 使用道具 举报
sai1025037768 发表于 2016-8-25 23:34
list.set(index, list.get(index)
这段代码什么意思

list.get(index).replaceAll("(.+)a", "$1" + "a"后面要连起来看,将list原index索引处的字符串用 正则修改后转成字符串通过list的set方法将新的值赋予list中index索引处
回复 使用道具 举报
万金油方法是把集合用toArrary方法变成数组,然后将最后一个赋值为a,把list清空或者重新创建一个数组,遍历集合把值加入到集合中
回复 使用道具 举报
本帖最后由 sai1025037768 于 2016-8-27 22:56 编辑
sai1025037768 发表于 2016-8-25 23:34
list.set(index, list.get(index)
这段代码什么意思

看错位置了,不过应该是"$1" + "*"
回复 使用道具 举报
阿卜 发表于 2016-8-23 16:25
[mw_shl_code=java,true]import java.util.ArrayList;
import java.util.Scanner;

"(.+)a", "$1" + "a"   ,这个是什么意思
回复 使用道具 举报
sai1025037768 发表于 2016-8-25 23:34
list.set(index, list.get(index)
这段代码什么意思

index是遍历集合遍历到字符a的索引位置,list.get(index)就是获取到字符a然后继续调方法,将字符a改为你想改的字符
回复 使用道具 举报
直接定义修改就可以了吧{:2_30:}
回复 使用道具 举报
阿卜 发表于 2016-8-23 16:25
[mw_shl_code=java,true]import java.util.ArrayList;
import java.util.Scanner;

list.set(index, list.get(index)
这段代码什么意思
回复 使用道具 举报
[Java] 纯文本查看 复制代码
import java.util.ArrayList;
import java.util.Scanner;

public class ItheimaArrayListQuestion1 {

        public static void main(String[] args) {
                //集合
                ArrayList<String> list = new ArrayList<String>();
                //录入键盘对象
                Scanner sc = new Scanner(System.in);
                //把录入的字符存进list数组中
                for (int i = 1; i <= 5; i++) {
                        System.out.println("输入第"+ i+"个字符串");
                        String line = sc.nextLine();
                        list.add(line);
                }
                //遍历list,将以“a”结尾的字符串改为“**”
                for(int index = 0;index < list.size();index++) {
                	if(list.get(index).endsWith("a")) 
                		list.set(index, "*");
                }
                /*//如果只是把末尾一个a改为*,所有或者多个更改正则表达式
                for(int index = 0;index < list.size();index++) {
                	if(list.get(index).endsWith("a")) 
                		list.set(index, list.get(index).replaceAll("(.+)a", "$1" + "a"));
                }*/
                //遍历集合
               for (String string : list) {
                        System.out.println(string);
               }
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马