黑马程序员技术交流社区

标题: java怎么把list集合中字符串末尾为a的改成* [打印本页]

作者: 95001178    时间: 2016-8-23 16:25
标题: java怎么把list集合中字符串末尾为a的改成*
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);


作者: 阿卜    时间: 2016-8-23 16:25
[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);
               }
        }
}

作者: sai1025037768    时间: 2016-8-25 23:34
阿卜 发表于 2016-8-23 16:25
[mw_shl_code=java,true]import java.util.ArrayList;
import java.util.Scanner;

list.set(index, list.get(index)
这段代码什么意思
作者: 天雨云龙    时间: 2016-8-26 00:23
直接定义修改就可以了吧{:2_30:}
作者: ObjectGitHub    时间: 2016-8-26 23:00
sai1025037768 发表于 2016-8-25 23:34
list.set(index, list.get(index)
这段代码什么意思

index是遍历集合遍历到字符a的索引位置,list.get(index)就是获取到字符a然后继续调方法,将字符a改为你想改的字符
作者: ObjectGitHub    时间: 2016-8-26 23:11
阿卜 发表于 2016-8-23 16:25
[mw_shl_code=java,true]import java.util.ArrayList;
import java.util.Scanner;

"(.+)a", "$1" + "a"   ,这个是什么意思
作者: sai1025037768    时间: 2016-8-27 22:21
本帖最后由 sai1025037768 于 2016-8-27 22:56 编辑
sai1025037768 发表于 2016-8-25 23:34
list.set(index, list.get(index)
这段代码什么意思

看错位置了,不过应该是"$1" + "*"
作者: Android一米阳光    时间: 2016-8-31 22:47
万金油方法是把集合用toArrary方法变成数组,然后将最后一个赋值为a,把list清空或者重新创建一个数组,遍历集合把值加入到集合中
作者: jackmay    时间: 2016-9-11 14:54
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索引处
作者: muxiaomo    时间: 2016-9-22 00:19
用索引把它改了不就完了吗?
作者: 胡小胡小胡    时间: 2016-9-26 11:28
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);
        }
}
}
作者: 叫我宁采臣    时间: 2016-9-28 09:39
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);
                               
                        }
                }
作者: wangkai426    时间: 2016-10-5 13:20
这个问题应该是用到了一个替换的方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2