打印返回值
我刚刚开始使用Java,到目前为止一直只是在解决在线问题,而不是写程序的全部功能,但只调整几行代码已经组织好的代码。但是,我仍然努力在IntelliJ Idea的一个编译程序中组织我的代码,这让我感到困惑,例如,如何正确调用方法调用。 这里就是我越来越坚持:一个例子来自codingbat.com:打印返回值
- 给定一个字符串,返回由开始的第一所有其他字符的一个新的字符串,所以“你好”产量“HLO”。
,我想出了一个解决方案在网上,但现在我想在理念运行,与主要方法,用扫描仪/ 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);
}
}
我请你帮忙解决。该怎么做:
- 从控制台读一个字;
- 创建一个新的字符串;
- 打印出来。
两种选择:
- 使
stringBits
static
- 创建类
Bat
的实例,并调用成员方法
首先解决方案 - 简单,没有太大的改变
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;
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());
}
}
luk! 非常感谢!第一种解决方案已被编译器接受,但它没有输出必要的结果,如“result - > rsl”,但只是再次输入了“result - result”结果。 但是第二个人工作得很出色,我喜欢这个。 我不想要求通过它的每个步骤并解释它 - 我已经很好了,只有用(str)作为参数创建一个新的Bat实例的部分仍然有点令人困惑,所以我想问问有没有关于它的更多信息的链接/来源?为什么,在哪些情况下等 – mohican93
@ mohican93没有真正的链接跟进。我猜你现在正在经历某种教程或演讲?主题和技术可能会以任何方式进行讨论。它只是一个类,有一个私有成员和一个构造函数接受该参数的值。 – luk2302
您的结果变量只能从“stringBits”方法中访问。由于该方法返回一个字符串,你可以做以下打印出来:
System.out.println(stringBits(string)); //Call in main method in place of printString();
编辑:我的代码是不工作的例子。请注意,为了工作,stringBits必须是一个静态方法。
谢谢,CConard96! 虽然我已经尝试过;据说stringBits()不能从非静态字段访问;那么我将String stringBits设置为static,这就是我得到的:stringBits不能应用于()。 编辑部分代码: public static String stringBits(String str){0} {0}结果String =“”;对于(int i = 0; i
请编辑您的原始问题以添加代码,而不是将其发布在评论中。另外,你得到的问题是因为你没有将任何参数传递给'stringBits()'。你需要调用'stringBits(str)'。另外,'str',目前不能被'printString()'访问,所以你还需要将'str'传递给这个方法。 –
我投票作为题外话,因为我不知道答案是什么的问题做关闭这个问题 - 这都没有现在感觉。 –
@ mohican93请不要在问题中包含给定的答案。只需点击左上角的复选标记即可接受解决问题的答案。这样未来的读者就知道该怎么做。 – luk2302
工程师,放轻松,我是这里第一个几个小时,现在它已被编辑。 大家好,非常感谢您的支持和答复,它可以帮助我。如果有人想提供一些关于讨论主题的更多链接,我也会很感激。 – mohican93