Java 反转整个字符串并反转其中的每个单词
我必须用两个类编写一个代码,一个类反转一个字符串改变位置,例如Java 反转整个字符串并反转其中的每个单词,java,methods,Java,Methods,我必须用两个类编写一个代码,一个类反转一个字符串改变位置,例如 我爱你变成uoyevoli 另一个类在不改变位置的情况下反转字符串,例如 我爱你变成了我爱你 我有一个小的代码,但是如果调用这些类中的方法,我没有办法 我现在所拥有的只是以第一种方式反转字符串的代码。欢迎任何帮助 class StringReverse2{ public static void main(String[] args){ String string="I love you";
我爱你
变成uoyevoli
另一个类在不改变位置的情况下反转字符串,例如
我爱你
变成了我爱你
我有一个小的代码,但是如果调用这些类中的方法,我没有办法
我现在所拥有的只是以第一种方式反转字符串的代码。欢迎任何帮助
class StringReverse2{
public static void main(String[] args){
String string="I love you";
String reverse = new StringBuffer(string). //The object created through StringBuffer is stored in the heap and therefore can be modified
reverse().toString(); //Here the string is reversed
System.out.println("Old String:"+string); //Prints out I love you
System.out.println("New String : "+reverse);//Prints out the reverse that is "uoy evol I"
}
}
我不会向您展示完整的解决方案,但会指导您,以下是一种方法:
根据空格分割字符串(split
)yourString.split(\\s+);
- 迭代生成的数组并反转每个字符串(可以使用与第一个任务相同的方法)
- 从数组构造一个新字符串
还有更多的解决方案,请访问并点燃您的创意之火 您可以在StringBuilder对象上使用reverse()方法
public class Testf {
public static void main(String[] args){
String string="I love you";
String reverse = new StringBuilder(string).reverse().toString();
StringBuilder secondReverse = new StringBuilder();
for (String eachWord : string.split("\\s+")){
String reversedWord = new StringBuilder(eachWord).reverse().toString();
secondReverse.append(reversedWord);
secondReverse.append(" ");
}
System.out.println("Old String:"+string); //Prints out I love you
System.out.println("New String : "+reverse);//Prints out the reverse that is "uoy evol I"
System.out.println("Reversed word two: " + secondReverse.toString());
}
}
API:只是一个建议,避免使用
保留关键字
作为变量/对象名称。有时它可能会导致意外行为。@PrerakSola:例如?我当然希望它不会“有时”导致“意外”行为;相反,它总是会导致预期的编译器错误。@njzk2-例如字符串@njzk2,-@PrekSola所说的是避免字符串和数组列表数组列表。这使它更容易阅读。当然string
所有小写字母都不是保留字,但它只是所有小写字母中的保留字。退房这是一个很好的惯例。我没有投反对票,但再看一遍问题,你没有回答。基本上,你在答案中的代码是他在问题中唯一的工作部分。您没有仔细阅读问题。谢谢-更改为反映问题现在是正确的,+1,但下次尝试不要为没有显示最小努力的问题提供完整的解决方案。@Marounnaroun他有自己编写的代码,我称之为显示“最小努力”。虽然,这个问题的答案很可能在网上找到……为什么你要使用拆分(\\s+”)
而不是拆分(“”
?@Ascalonian因为它更通用,“
是一个匹配单个空格的正则表达式,\\s+
匹配一个或多个空格,所以它可以像“abc___________;hi jk”
(其中是一个空格)