Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串替换为用户';s输入-Java_Java - Fatal编程技术网

字符串替换为用户';s输入-Java

字符串替换为用户';s输入-Java,java,Java,我不确定我是否正确地处理了这个问题。我正在写一个程序来练习这一点。用户输入的内容是什么?我希望能够将其中一个单词作为输出,并将其更改为其他内容 这是我的密码: import java.util.Scanner; public class StringReplace { private static Scanner input; public static void main(String[] args) { String Line; input = new Scanne

我不确定我是否正确地处理了这个问题。我正在写一个程序来练习这一点。用户输入的内容是什么?我希望能够将其中一个单词作为输出,并将其更改为其他内容

这是我的密码:

import java.util.Scanner;

public class StringReplace {


private static Scanner input;

public static void main(String[] args) {

    String Line;
    input = new Scanner( System.in );       
    System.out.print("Please Enter a String: ");
    Line=input.next();

    Line = Line.replace("Wake", "Wake Business");

}
}
例如,在运行程序后,会提示用户

Please Enter a String:

我会进入“唤醒美国”,当我点击进入时,什么也没有发生。我知道我走错了方向,不知道如何纠正它。是的,我是初学者。有人能帮我解决这个问题吗?我将不胜感激。提前感谢您。

在Java中,变量从不以大写字母开头,因为类是您开始编写时唯一以大写字母开头的对象,因此您引用了类。。。 将其用作变量名:

String line;
并将其添加到您的代码@末尾:

System.out.println(line);

您必须将该行打印到console才能看到它。Java会在某种程度上握住你的手,但不会那么远

在变量
上运行操作后(顺便说一句,
应作为变量置于大小写下),您应该执行此操作,它将打印出您的变量

   System.out.println(Line);

就我所记得的,
Scanner
类的标准分隔符是一个空白,因此它只捕获第一部分(Wake)


使用
input.useDelimiter(“\n”)next()
方法之前,代码>将被解决。

您的错误出现在
行的大写字母中

试试这个(它有效):


如果要读取整行,请使用“input.nextLine”

要输出到标准输出,请使用“System.out.println()

所以你可以像这样修改你的代码

public static void main(String[] args) {

    String line;
    input = new Scanner(System.in);
    System.out.print("Please Enter a String: ");
    line = input.nextLine();
    System.out.println(line);

    line = line.replace("Wake", "Wake Business");
    System.out.println(line);
}

在您将
设置为带有替换词的字符串后,如果您真的使用它做些什么,也许会有所帮助?比如,输出它?替换它后尝试打印行:System.out.println(line);嗯?你预计会发生什么?如果你想让某些事情发生,你需要编写代码让它发生!有道理。是的,把它打印出来会有帮助的。好的,我这样做了,但它并没有像我输入字符串的示例那样打印行的其余部分。“唤醒美国”正在打印“唤醒商业”。还有什么建议吗?请确认,我添加了这个“System.out.println(line);”,但它没有添加用户输入的其余字符串。您没有读取整个
字符串。打印“请输入字符串”后,您需要调用
Line=input.nextLine()
,这样就可以得到用户输入的整个
String
。好的,但是如何才能打印出其余字符串?因为您要打印一个字符串。替换您用另一个字符串替换该字符串,那么另一个字符串就会丢失。然后在代码System.out.println(第行)的末尾执行此操作,在这里,您将字符串打印到控制台框中,在控制台框中输入字符串。这应该结束你的代码。;-)哦,它不是:System.out.print它是System.out.println;-),在代码中编辑该字符串。@JonasLibbrecht使用
replace()
不会替换整个字符串或使另一个字符串丢失。它将仅用给定的字符串替换给定的模式。变量使用小写字母是一种惯例,而不是语言规则。使用
Line
作为变量应该仍然有效,除非有其他错误。事实上没有。她用大写字母pnemonic命名变量是错误的,这是可以理解的,但这不是她错误的原因,也不是她的问题。我知道这是一个惯例,但我只改变了它,它就起作用了。。。(您可以测试)。我不知道为什么,但这是功能性的。也许她的IDE配置为不允许变量使用大写,因为这不仅仅是一个简单的约定。程序从一开始就工作,最后的问题是字符串没有被完整读取。。。即使您没有更改第行的大写字母L,代码也会在末尾打印“Wake Business”。这是一个惯例,也是一个非常健康的惯例,但这并不意味着如果你不遵循它,你的代码就不能工作。我认为程序在开始时不起作用,因此我测试了它(改为小写)并且它起作用了,但我没有测试开始时的程序:p实际上是我,在实际有
nextLine()
method:)的情况下更改换行符的分隔符回答得很好。
public static void main(String[] args) {

    String line;
    input = new Scanner(System.in);
    System.out.print("Please Enter a String: ");
    line = input.nextLine();
    System.out.println(line);

    line = line.replace("Wake", "Wake Business");
    System.out.println(line);
}