编写一个JAVA程序,把一个字符串反过来显示
如将字符串"Ilovejava"显示为"avajevolI".基本要求要求根据字符串的构成原理来编写.算法描述由于字符是由字符构成的,因此将一个字符串反转输出是很容易的....
如将字符串"I love java"显示为"avaj evol I".
基本要求
要求根据字符串的构成原理来编写.
算法描述
由于字符是由字符构成的,因此将一个字符串反转输出是很容易的. 展开
基本要求
要求根据字符串的构成原理来编写.
算法描述
由于字符是由字符构成的,因此将一个字符串反转输出是很容易的. 展开
6个回答
展开全部
public AbstractStringBuilder reverse() {
boolean hasSurrogate = false;
int n = count - 1;
for (int j = (n-1) >> 1; j >= 0; --j) {
char temp = value[j];
char temp2 = value[n - j];
if (!hasSurrogate) {
hasSurrogate = (temp >= Character.MIN_SURROGATE && temp <= Character.MAX_SURROGATE)
|| (temp2 >= Character.MIN_SURROGATE && temp2 <= Character.MAX_SURROGATE);
}
value[j] = temp2;
value[n - j] = temp;
}
if (hasSurrogate) {
// Reverse back all valid surrogate pairs
for (int i = 0; i < count - 1; i++) {
char c2 = value[i];
if (Character.isLowSurrogate(c2)) {
char c1 = value[i + 1];
if (Character.isHighSurrogate(c1)) {
value[i++] = c1;
value[i] = c2;
}
}
}
}
return this;
}
这就是StringBuffer类中reverse方法的源代码.这就是原理!
boolean hasSurrogate = false;
int n = count - 1;
for (int j = (n-1) >> 1; j >= 0; --j) {
char temp = value[j];
char temp2 = value[n - j];
if (!hasSurrogate) {
hasSurrogate = (temp >= Character.MIN_SURROGATE && temp <= Character.MAX_SURROGATE)
|| (temp2 >= Character.MIN_SURROGATE && temp2 <= Character.MAX_SURROGATE);
}
value[j] = temp2;
value[n - j] = temp;
}
if (hasSurrogate) {
// Reverse back all valid surrogate pairs
for (int i = 0; i < count - 1; i++) {
char c2 = value[i];
if (Character.isLowSurrogate(c2)) {
char c1 = value[i + 1];
if (Character.isHighSurrogate(c1)) {
value[i++] = c1;
value[i] = c2;
}
}
}
}
return this;
}
这就是StringBuffer类中reverse方法的源代码.这就是原理!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//以下代码手写,未验证,但思路就是这个样的,也符合数主的意思
String s = "I love java";
int len = s.length();
//String 本质就是一个Char数组
char[] c = s.toCharArray();
//取一半交换即可
for(int i=0; i<len/2; i++){
char tmp = c[i];
c[i]=c[len-i-1];
c[len-i-1]=tmp;
}
//将交换后的Char数组重新生成一个String
String out = new String(c);
System.out.println(out);//这就是反向输出了
String s = "I love java";
int len = s.length();
//String 本质就是一个Char数组
char[] c = s.toCharArray();
//取一半交换即可
for(int i=0; i<len/2; i++){
char tmp = c[i];
c[i]=c[len-i-1];
c[len-i-1]=tmp;
}
//将交换后的Char数组重新生成一个String
String out = new String(c);
System.out.println(out);//这就是反向输出了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static void main(String[] args) {
String str = "I love java";
for (int i = str.length() - 1; i >= 0; i--) {
System.out.print(str.charAt(i));
}
}
String str = "I love java";
for (int i = str.length() - 1; i >= 0; i--) {
System.out.print(str.charAt(i));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
document.write.(对象.reverse());
reverse() 就是显示倒序的字符。
reverse() 就是显示倒序的字符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法很多啊。。。先把字符串的长度取下来,再用循环,递减,然后取那个位置的值,不就OK啦~~~最简单,也最好理解。给分吧。。哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询