java中如何利用循环语句实现字符串反向输出

java中如何利用循环语句实现字符串反向输出,第1张

public class InputWord {
public static void inputName(String name) {
char[] c = nametoCharArray();
String snew = "";
for (int i = clength - 1; i >= 0; i--) {
snew += c[i];
}
Systemoutprintln(name + "倒过来是:"+ snew);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(Systemin));
String input = "";
do{
Systemoutprintln("输入'exit'结束:");
Systemoutprintln("请输入字符:");
input = brreadLine();
inputName(input);
}while(!"exit"equals(input));
}
}
结果如下:
输入'exit'结束:
请输入字符串:
vieriada
vieriada倒过来是:adaireiv
输入'exit'结束:
请输入字符串:
aadsasd
aadsasd倒过来是:dsasdaa
输入'exit'结束:
请输入字符串:
exit
exit倒过来是:tixe

public class Test {
public static  void main(String[] args) {
String data[]={"1ABC","b3cf","1234","111","123456789A"};
for(String d:data){
Systemoutformat("%X ",Longreverse(LongparseLong(d, 16))>>>(64-4dlength()));
}
}
}3D58 F3CD 2C48 888 591E6A2C48

可以直接转换

String类型对象的内容是不可以修改的,所以JAVA提供StringBuffer提供对字符串的修改 *** 作。其成员方法reverse()提供对字符串的倒置功能。所以一般先将String类转化为StringBuffer类在做处理。
import javautilScanner;
public class Test {
public static void main(String[] args) {
Scanner scanner=new Scanner(Systemin);
String inStr=scannernextLine();//标准输入字符串
StringBuffer reStr=new StringBuffer(inStr);//将String类型转化为StringBuffer类型
reStrreverse();//StringBuffer类的成员方法reverse可以倒置字符串
inStr=reStrtoString();//转化为String类型
Systemoutprintln("倒置后字符串为:"+inStr);
}
}

查API文档(以下是API中对reverse方法的描述):
reverse
public StringBuffer reverse()将此字符序列用其反转形式取代。如果序列中存在代理项对 (surrogate pair),在 reverse *** 作中将其作为单个字符处理。因此,高-低代理项的顺序不会反转。假设 n 为执行 reverse 方法前此字符序列的字符长度(并非 char 值的长度),则新字符序列中索引 k 处的字符将等于原字符序列索引 n-k-1 处的字符。
注意,进行 reverse *** 作后,执行 *** 作前未成对的低代理项和高代理项将成为代理项对。例如,反转 "\uDC00\uD800" 将生成有效的代理项对 "\uD800\uDC00"。
返回:
此对象的一个引用。
从以下版本开始:
JDK102

希望对你有用
import javaioBufferedReader;
import javaioFileReader;
import javaioPrintWriter;
import javautilStringTokenizer;
public class TestDW {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("D:\\testtxt"));//要确定根目录下有testtxt文件且有内容
StringBuffer sb = new StringBuffer();
String lineContent = null;
while ((lineContent = brreadLine()) != null) {
StringTokenizer st = new StringTokenizer(lineContent, " ");
for (int t = 0; sthasMoreElements(); t++) {
String word = (String) stnextElement();
sbappend(word);
}
}
sbreverse();//将读取的内容反序排列
PrintWriter pw = new PrintWriter("D:\\test1txt");
pwwrite(sbtoString());
brclose();
pwclose();
}
}

JAVA倒序输出字符串
初始化的时候应该为str="";

程序源代码:

/

字符串abcdefg,要求按逆序输出为gfedcba
/

public class ReverseSort {

public static 亥tring reverseSort(String str) {

String str2 = "";

for (int i = strlength() - 1; i > -1; i--) {

str2 += StringvalueOf(strcharAt(i));

}

return str2;

}

public static void main(String[] args) {

String str = "abcdefg";

String sortedStr = reverseSort(str);

Systemoutprintln(sortedStr);

}

}

结果:

gfedcba
如何将一个字符串最快速的倒序输出
import javautil;

public class Ni

{

public static void main(String args[]){

Scanner sc=new Scanner(Systemin);

String str=scnext();

for(int i=strlength()-1;i>=0;i--){

Systemoutprint(strcharAt(i));

}

}

}

这是一个将输入的字符串逆序输出的方法。

借签一下。
如何用C语言将字符串逆序输出?
下面是C语言代码#include int main(void){ char ch; scanf("%s",ch); int i=0,j; while用来取得字符串的长度 while((ch+i)!='\0') { i++; } for循环从后向前访问字符串,其实就是字符数组 for(j=i-1;j>=0;j--) { printf("%c",(ch+j)); } printf("\n"); return 0;}原理:

C语言中对字符串进行 *** 作,不仅仅对于字符数组,都可以用字符串的变量名来做该字符串的指针,其变量名指向第一个字符。因此,可以通过指针从后往前进行读取 *** 作,从而实现逆序输出。
C语言中如何将中文字符倒序输出
一个汉字占用两个字节(扩展ASCII码),而getchar()每次只能读入一个字节,因此读入汉字时,则需要用gets()函数。

倒叙输出汉字串时,有两种方法,一是从字符串末端开始,每次输出两个字节,二是直接汉字将字符串在数组中倒置,然后再用puts()函数直接输出。

以上两种方法都有局限性,一旦含有非汉丹字符,极有有可能造成乱码。
如何将一个字符串最快速的倒序输出
import javautil;

public class Ni

{

public static void main(String args[]){

Scanner sc=new Scanner(Systemin);

String str=scnext();

for(int i=strlength()-1;i>=0;i--){

Systemoutprint(strcharAt(i));

}

}

}

这是一个将输入的字符串逆序输出的方法。

借签一下。
写一个程序,将字符串倒序输出
#include #define LEN 50char invert(char s[], char s1[]){int letter;int i=0,j=0;while(s[i]!='\0')i++;--i;for(;i>=0;i--){letter=s[i];s1[j]=letter;j++;}return s1;}int main(){char string[LEN];char string1[LEN];printf("请输入一串字符:");gets(string);printf("%s",invert(string, string1));return 0;}
在java中,如何使字符逆序输出?
使用递减的for循环,然后用charAt倒序获取字符串。代码如下

String str="qwertyuiop";for (int i = strlength()-1; i >= 0; i--) { 字符串下标从0开始,长度-1结束。倒序所以从长度-1开始,0结束。Systemoutprint(strcharAt(i));}
C语言,输入一个字符串,逆序排列后输出
s2[n=strlen(s1)]='\0'
IOS中怎样把一个字符串倒序输出?
NSString string = @"qwer";

NSMutableString newString = [[NSMutableString alloc] initWithCapacity:stringlength];

for (int i = stringlength - 1; i >=0 ; i --) {

unichar ch = [string characterAtIndex:i];

[newString appendFormat:@"%c", ch];

}

NSLog(@"%@", newString);
请教C语言字符串倒序输出
#include

工include

void main()

{

char string1[200]; 用于存放输入的字符串

char string2[200]; 用于存放倒序后的字符串

int invertion(char ch1, char ch2); 声明函数

printf("Please input a sentences:\n");

gets(string1); 这里不要用scanf,因为scanf遇到空白符就会结束

printf("Your inputed sentences is:%s\n", string1);

invertion(string1, string2);

printf("The invertion sentences is:%s\n", string2);

getchar();

}

int invertion(char ch1, char ch2)/char1 接收实参传过来的原字符串指针 char2 接收倒序后的新字符串返回主函数/

{

int count = 1,num=0;

char ch=ch1;

for(;ch1!='\0';ch1++) 统计单词个数

{

if(ch1==' ')

count++; 单词数等于空格数加1,前面把count初始化为1就是这个原因

if(ch1==' '&&(ch1+1)==' ') 防止单词之间有2个空格符而多计数了一个单词数

count--;

}

printf("count = %d\n", count);

ch1=ch1-1;前面的ch1经过循环之后已经指向字符串的结束标志'\0',这里减1是为了让它指向字符串的最后一个字符

while(ch1>=ch)让ch1从指向string1的最后一个字符开始往前递减,当减到字符串的首个字符时结束

{ int j=num; 保存num,后面要用到这个数

if(ch1!=' ')记录每个单词的长度 ,以空格符作为标志

num++;

else 知道了每个单词的长度之后,就可以用循环将字符以单词为单位写入数组string中,这样的话单词内就不会倒序了

{

for(int i=1;i<=j;i++,num--)

(ch2-num)=(ch1+i);

ch2=ch1;

}

ch1--;

ch2++;

}

for(int i=1;i<=num;i++,ch2++)因为string1的第一个单词前没有空格符,肯定输不出来,所以单独用一个循环将其输出

(ch2-num)=(ch1+i);

ch2='\0'; string2的结束标志

}

这是我做了修改之后的程序,看看符不符合要求!!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13333134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存