Java 使用子字符串向后显示字符串
这里有一个向后显示字符串的方法Java 使用子字符串向后显示字符串,java,substring,Java,Substring,这里有一个向后显示字符串的方法 public static String ReverseStr(String backward) { String newString = ""; for (int i=0; i<backward.length(); i++) { newString = backward.charAt(i) + newString; } return newString; } 但是当我运行程序时,
public static String ReverseStr(String backward) {
String newString = "";
for (int i=0; i<backward.length(); i++) {
newString = backward.charAt(i) + newString;
}
return newString;
}
但是当我运行程序时,它什么也不显示。请帮我修改代码。多谢各位 如果这不是家庭作业,则使用StringBuilder类和reverse()方法 ()
如果这是一个家庭作业,请自己完成。由于控制条件错误,循环永远不会执行:
for (int i=0; i>backward.length(); i--)
它从0
开始,一直持续到i
大于length
(这从来都不是真的,因为length
始终至少是0
)。你可能是说:
一旦您修复了代码,请考虑使用<代码> StringBuilder <代码>,而不是将其连接到<代码> String < /代码>。一旦您成功使用,您将发现简便的方法:
您的for循环出错,它将永远不会运行,因为您的条件错误,请将其更改为:
for (int i=backward.length(); i>=0; i--)
您应该
StringBuilder
。下面的代码应该按照您的预期工作
public static String ReverseStr(String backward)
{
String newString = "";
StringBuilder sb=new StringBuilder(backward);
for (int i=0; i>backward.length(); i--) //backward.length() may be replaced with sb.length()
{
String subChar = sb.charAt(i); //Replace `substring()` with `charAt()`
newString += subChar;
}
return newString;
}
类测试
{
公共静态void main(字符串[]args)
{
字符串strtorrev=“测试代码”;
字符串newString=“”;
int len=strtorrev.length();
系统输出打印项次(len);
对于(inti=0;i我们可以使用递归来反转字符串
public class ReverseStringTest {
public static String reverseString(String str) {
if (str.isEmpty()) {
return str;
}
//Calling Function Recursively
return reverseString(str.substring(1)) + str.charAt(0);
}
public static void main(String[] args) {
System.out.println(reverseString("java"));
}
}
您好Rafael!我不知道有这样的类和方法。谢谢。我是Java新手,我想练习不同的风格。您好,因为您正在学习Java,我建议您也检查Java类源代码。这是一个很好的学习源代码。检查文件src.zip,它位于您安装Java的文件夹中。解压缩它并学习t标准java类的源代码。谢谢你,Tomasz!你是对的哈哈,我真傻。但是当我运行代码时,例如我输入“hello”,它输出“ooooo”。@FirstLady:thisbackward.substring(backward.length()-1);
不正确,你自己去弄清楚。谢谢你,ftom2!但是当我运行代码时,例如我输入“hello”,它输出“ooooo”.我认为你问了太多问题是为了你好。你需要学会自己解决这些问题。除非你这样做,否则你不会成为一个有效的程序员。我同意Stephen的观点。花几个小时研究标准包的javadoc并尝试这些东西不会浪费时间。欢迎来到Stack Overflow!请不要浪费时间nswer仅提供源代码。请尝试提供有关解决方案工作原理的详细说明。请参阅:。谢谢。请不要仅使用源代码回答。请尝试提供有关解决方案工作原理的详细说明。请参阅:。谢谢
for (int i=backward.length(); i>=0; i--)
public static String ReverseStr(String backward)
{
String newString = "";
StringBuilder sb=new StringBuilder(backward);
for (int i=0; i>backward.length(); i--) //backward.length() may be replaced with sb.length()
{
String subChar = sb.charAt(i); //Replace `substring()` with `charAt()`
newString += subChar;
}
return newString;
}
public static String ReverseStr(String backward) {
String newString = "";
for (int i=backward.length()-1; i>=0; i--)
newString+ = backward.charAt(i);
return newString;
}
class Test
{
public static void main(String[] args)
{
String strtorev = "Test Code";
String newString = "";
int len = strtorev.length();
System.out.println(len);
for(int i =0;i<len;i++)
{
String subChar = strtorev.substring(strtorev.length()-1-i,strtorev.length()-i);
newString += subChar;
System.out.println(newString);
}
}
}
public class ReverseStringTest {
public static String reverseString(String str) {
if (str.isEmpty()) {
return str;
}
//Calling Function Recursively
return reverseString(str.substring(1)) + str.charAt(0);
}
public static void main(String[] args) {
System.out.println(reverseString("java"));
}
}