答案 0 :(得分:1)
StringBuilder#reverse将为您完成工作
使该字符序列被替换为 序列。如果序列中包含任何代理对, 这些被视为反向操作的单个字符。 因此,高低代理人的顺序永远不会逆转。设n是 这个字符序列的字符长度(不是长度) char值)就在执行反向方法之前。那么 新字符序列中索引k处的字符等于 旧字符序列中索引为n-k-1的字符。
注意 反向操作可能导致产生代理对 手术前未配对的低代理人和高代理人。对于 例如,反转“\ uDC00 \ uD800”会生成“\ uD800 \ uDC00”,这是一个 有效的代理人对。
答案 1 :(得分:0)
这是我可以想到的两种简单方法来反转字符串......
public static void main(String[] args) {
StringBuilder r = new StringBuilder("Welcome to the class");
for (int i = r.length(); i > 0; i--) {
System.out.print(r.charAt(i - 1));
}
System.out.println("\n" + r.reverse());//this is also another way to do it.
}
注意:“ r.reverse()”修改原始的StringBuilder对象。
答案 2 :(得分:0)
以下是解决方案: StringBuilder r = new StringBuilder(“欢迎使用该类”);
String[] parts = r.reverse().toString().split(" ");
String finalValue="";
StringBuffer str1 ;
for (int i = 0; i < parts.length; i++)
{
if(parts[i].length()>2)
{
str1=new StringBuffer (parts[i]);
str1.insert((int)Math.ceil((parts[i].length())/2)+1,' ');
parts[i]=str1.toString();
}
}
for (int i = 0; i < parts.length; i++)
{
finalValue +=parts[i] +" ";
}
System.out.println(finalValue.trim());
如果你看清楚,它会在每个单词之间留一个空格。以欢迎为例。相反,它将是emoclew ..这是7个字母的单词..分成两半emoc lew