简体   繁体   English

更新 Arraylist 字符串的特定部分?

[英]Updating specific part of Arraylist string?

I am making a program where the person inputs multiple values and the Arraylist stores it as a single string with option 1. Option two allows you to change a specific part of that string from "Complete" to "Incomplete" and vice-versa but only if the status part of the String is one of the two.我正在制作一个程序,其中的人输入多个值,Arraylist 将其存储为带有选项 1 的单个字符串。选项二允许您将该字符串的特定部分从“完整”更改为“不完整”,反之亦然,但仅如果 String 的状态部分是两者之一。 I am getting the warning "Result of 'String.replace()' is ignored" and the part of the string isn't updating.我收到警告“'String.replace()' 的结果被忽略”并且字符串的一部分没有更新。 Any help would be appreciated!任何帮助,将不胜感激!

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

public class Main {
    public static void main(String[] args) {
        Array listObj = new Array();
        Scanner userinput = new Scanner(System.in);
        int arraysize = (listObj.list.size());

        int power = 1;
        while (power < 2) {
            System.out.println("To-Do List / What would you like to do?");
            System.out.println("1 = Add Task / 2 = Mark Task as Done / 3 = Remove Task / 4 = Edit Task / 5 = Display Tasks / 6 = Exit");
            int selection = userinput.nextInt();


            if (selection == 1) {
                for (int i = 0; i <= arraysize; i++) {
                    String title;
                    String date;
                    String status;
                    String description;
                    String id;

                    System.out.print("Enter Title: ");
                    title = userinput.next();
                    System.out.print("Enter Due Date: ");
                    date = userinput.next();
                    System.out.print("Enter Status (Complete or Incomplete): ");
                    status = userinput.next();
                    System.out.print("Enter Description: ");
                    description = userinput.next();
                    listObj.list.add(title + " " + date + " " + status + " " + description);
                    System.out.println();
                    listObj.list.forEach(System.out::println);
                    System.out.println();
                }
            }
            if (selection == 2) {
                int idinput;
                System.out.println("Enter Project ID to Toggle Complete/Incomplete: ");
                idinput = (userinput.nextInt()-1);
                System.out.println();
                System.out.println(listObj.list.get(idinput));
                System.out.println();
                System.out.println("What is the status of this assignment?: ");
                String toggleselect = userinput.next();
                if (toggleselect.equals("Incomplete")) {
                    listObj.list.get(idinput).replace("Incomplete", "Complete");
                } else if (toggleselect.equals("Complete")) {
                    listObj.list.get(idinput).replace("Complete", "Incomplete");
                } else {
                    System.out.println("Status is not Complete/Incomplete");
                }
                System.out.println();
                listObj.list.forEach(System.out::println);
                System.out.println();
            }
        }
    }
}


import java.util.ArrayList;
public class Array {
    ArrayList<String> list = new ArrayList<String>();

    public ArrayList<String> getList() {
        return list;
    }
}`your text`

public String replace(char searchChar, char newChar)

demands a String to output to, as you can see by the return type.要求一个 String 到 output 到,正如您可以通过返回类型看到的那样。 In this case use在这种情况下使用

public E set(int index, E element)

from the ArrayList library,来自 ArrayList 图书馆,

with E return type being your ArrayList, E返回类型是你的ArrayList,

and E element being your callE element是你的电话

listObj.list.get(idinput).replace("Complete", "Incomplete");

So,所以,

listObj.list.get(idinput).replace("Complete", "Incomplete");

becomes成为

listObj.list.set(idinput, listObj.list.get(idinput).replace("Complete", "Incomplete"));

Also, why are you creating a class called Array that just encapsulates an ArrayList in it?另外,为什么要创建一个名为Array的 class,它只封装了一个ArrayList呢?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM