Java 打印返回值

Java 打印返回值,java,Java,我刚开始使用Java,到目前为止,我只是在网上解决问题,你不应该编写整个程序的功能,只需要根据已经组织好的代码调整几行代码 然而,我仍然在努力用IntelliJ Idea在编译程序中组织我的代码,例如在方法调用必须如何正确编写方面感到困惑。 下面是我遇到的问题:codingbat.com上的一个例子: -给定一个字符串,返回一个新字符串,该字符串由以第一个字符开头的每个字符组成,因此“Hello”生成“Hlo” 我已经提出了一个在线解决方案,但现在我想在Idea中运行它,使用main方法,使用来

我刚开始使用Java,到目前为止,我只是在网上解决问题,你不应该编写整个程序的功能,只需要根据已经组织好的代码调整几行代码

然而,我仍然在努力用IntelliJ Idea在编译程序中组织我的代码,例如在方法调用必须如何正确编写方面感到困惑。 下面是我遇到的问题:codingbat.com上的一个例子:

-给定一个字符串,返回一个新字符串,该字符串由以第一个字符开头的每个字符组成,因此“Hello”生成“Hlo”

我已经提出了一个在线解决方案,但现在我想在Idea中运行它,使用main方法,使用来自控制台的Scanner/BufferedReader输入等。看起来我遗漏了一些东西

import java.util.Scanner;
public class Bat
{
    public static void main (String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        printString();
         }

    public String stringBits(String str) {
        String result = "";
        for (int i = 0; i<str.length();i += 2) {
            result += str.substring(i, i+1);
        }
        return result;
    }
    public static void printString () {
        System.out.println(result);
    }
}
import java.util.Scanner;
公共类蝙蝠
{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
String str=scanner.nextLine();
printString();
}
公共字符串字符串位(字符串str){
字符串结果=”;

对于(int i=0;i您的结果变量只能从“stringBits”方法中访问。由于该方法返回字符串,您可以执行以下操作来打印它:

System.out.println(stringBits(string)); //Call in main method in place of printString();
编辑:我的代码不是一个工作示例。请注意,stringBits必须是一个静态方法才能工作。

有两种选择:

  • 使
    stringBits
    static
  • 创建类
    Bat
    的实例并调用member方法

第一个解决方案-简单,无需太多更改

import java.util.Scanner;

public class Bat {
    public static void main (String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        printString(stringBits(str));
    }

    public static String stringBits(String str) {
        String result = "";
        for (int i = 0; i < str.length();i += 2) {
            result += str.substring(i, i + 1);
        }
        return result;
    }

    public static void printString (String string) {
        System.out.println(string);
    }
}
import java.util.Scanner;
公共类蝙蝠{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
String str=scanner.nextLine();
打印字符串(stringBits(str));
}
公共静态字符串位(字符串str){
字符串结果=”;
对于(int i=0;i

第二个解决方案-更先进一点

import java.util.Scanner;

public class Bat {

    private String string;

    public Bat(String string) {
        this.string = string;
    }

    public static void main (String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();

        Bat bat = new Bat(str);
        bat.printStringBits();
    }

    private String stringBits() {
        String result = "";
        for (int i = 0; i < string.length(); i += 2) {
            result += string.substring(i, i + 1);
        }
        return result;
    }

    public void printStringBits() {
        System.out.println(stringBits());
    }
}
import java.util.Scanner;
公共类蝙蝠{
私有字符串;
公共Bat(字符串){
this.string=string;
}
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
String str=scanner.nextLine();
Bat=新的Bat(str);
bat.printStringBits();
}
私有字符串stringBits(){
字符串结果=”;
对于(int i=0;i
谢谢你,cCNard96!不过我已经试过了;stringBits()据说无法从非静态字段访问;然后我将字符串stringBits设置为静态,这就是我得到的:stringBits不能应用于()。代码的编辑部分:公共静态字符串stringBits(StringStr){String result=”“;用于(int i=0;我请编辑您的原始问题以添加代码,而不是将其发布在注释中。此外,您遇到的问题是您没有将任何参数传递给
stringBits()
。您需要调用
stringBits(str)
。另外,
str
当前无法访问
printString()
,因此您还需要将
str
传递给此方法。luk!非常感谢!编译器接受了第一个解决方案,但它没有打印出必要的结果,如“result-->rsl”,而只是再次打印输入字“result-result”.但是第二个非常出色,我喜欢这一个。我不想要求完成它的每一个步骤并解释它-我
做得很好,只是创建了一个带有(str)的新Bat实例的部分作为一个参数仍然有点困惑,所以我想问一下,是否有更多关于它的信息的链接/来源?为什么,在哪些情况下等等@mohican93没有真正的链接跟进。我猜你现在正在经历某种教程或讲座?主题和技巧可能会以任何方式进行讨论。这只是一个问题类,其中一个私有成员和一个构造函数接受该参数的值。我投票将此问题作为主题外的问题结束,因为我不知道问题的答案在做什么——现在没有意义了。@请不要在问题中包含给定的答案。只需单击“t”接受解决问题的答案即可他在左上角打了勾。这样未来的读者就知道该怎么做了。工程师,别紧张,我是这里的头几个小时,现在它已经被编辑了。各位,谢谢你们的支持和回答,这对我很有帮助。如果有人想提供有关讨论主题的更多链接,我也将不胜感激。