gpt4 book ai didi

java - 我正在尝试使用具有多行的扫描仪,并尝试使用另一个字符串 java 更改输入

转载 作者:行者123 更新时间:2023-12-01 16:59:17 25 4
gpt4 key购买 nike

所以,我正在尝试制作一个程序,它会问你想要改变什么,它会问你要改变什么,解释这一点的最好方法是说我有我的字符串中有一堆 1234,我想将它们全部更改为“WASD”,(请记住,这些多行输入存储在 ArrayList 中)但是,我的程序似乎无法正常工作,它没有给我任何结果当我输入时立即输出。

这是我的代码(很抱歉,我没有遵循命名约定,但我希望您能得到一个大致的理解)

package com.far.main;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class findandreplace {

static String inputLocation;

static String inputChange;

static String data;

static List<String>test1 = new ArrayList<String>();
findandreplace(){



}

public static void findthanreplace() {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter what string YOU WANT TO REPLACE");
String input = scanner.nextLine();

inputLocation = input;

System.out.println("Enter the DATA you want to replace WITH");
String inputDataChange = scanner.nextLine();

inputDataChange = inputChange;

returnInput();
}

public static void returnInput() {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter in the data");

while (scanner.hasNextLine()) {
List<String> test = new ArrayList<>();
Scanner scanner1 = new Scanner(scanner.nextLine());
while (scanner1.hasNext()) {
test.add(scanner1.next());
}
test = test1;
}

finalResult();
}


public static void finalResult() {
System.out.println();
System.out.println();

System.out.println(Collections.replaceAll(test1, inputLocation, inputChange));
System.out.println(test1);
}
public static void main(String[] args) {
findthanreplace();

}

}

最佳答案

在我看来你的代码有一些问题,比如1) 此代码显示您只需要一行并替换,因此您应该编写 break; end of while (scanner.hasNextLine()) 范围,因为编译器永远不会从 while 退出。否则你想要多行,你可以获取输入代码的大小,如果大小为空则中断。2)您应该替换 test1 = test; 而不是 test = test1;3 )您可以将列表项打印为 test1.forEach(n-> System.out.print(n.concat(""))); 而不是 System.out.println(测试1);

所以我改变你的代码如下

public static void returnInput() {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter in the data");
while (scanner.hasNextLine()) {
List<String> test = new ArrayList<>();
Scanner scanner1 = new Scanner(scanner.nextLine());
while (scanner1.hasNext()) {
test.add(scanner1.next());
}
if(test.isEmpty())
break;
test1 .addAll(test);
}

finalResult();
}


public static void finalResult() {
System.out.println();
System.out.println();

System.out.println(Collections.replaceAll(test1, inputLocation, inputChange));
test1.forEach(n-> System.out.print(n.concat(" ")));
}

关于java - 我正在尝试使用具有多行的扫描仪,并尝试使用另一个字符串 java 更改输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61536452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com