黑马程序员技术交流社区
标题:
求教为什么明明转成了字符串,打印的时候还是字符数组
[打印本页]
作者:
潘际昌
时间:
2013-11-27 12:37
标题:
求教为什么明明转成了字符串,打印的时候还是字符数组
本帖最后由 潘际昌 于 2013-11-27 17:21 编辑
</blockquote></div><div class="blockcode"><blockquote>import java.io.*;
import java.util.*;
public class Test8
{
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
BufferedReader bufr= new BufferedReader(new InputStreamReader((System.in)));
BufferedWriter pt=new BufferedWriter(new OutputStreamWriter(System.out));
String s=null;
while((s=bufr.readLine())!=null)
{
char[] ch=s.toCharArray();
for(int x=0;x<ch.length;x++)
{
if(ch[x]>='a'&&ch[x]<='z')
{
ch[x]=Character.toUpperCase(ch[x]);
}
else if(ch[x]>='A'&&ch[x]<='Z')
{
ch[x]=Character.toLowerCase(ch[x]);
}
else
continue;
}
String s1=Arrays.toString(ch);//为什么这句话没什么用?打印的还是数组。
pt.write(s1, 0, s1.length());
pt.flush();
}
bufr.close();
pt.close();
}
}
复制代码
作者:
王雷1
时间:
2013-11-27 12:43
本帖最后由 王雷1 于 2013-11-27 12:44 编辑
先顶下,马上回答
作者:
王雷1
时间:
2013-11-27 12:58
本帖最后由 王雷1 于 2013-11-27 13:07 编辑
import java.io.*;
import java.util.*;
public class Demo {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
BufferedReader bufr= new BufferedReader(new InputStreamReader((System.in)));
BufferedWriter pt=new BufferedWriter(new OutputStreamWriter(System.out));
String s=null;
while((s=bufr.readLine())!=null)
{
char[] ch=s.toCharArray();
for(int x=0;x<ch.length;x++)
{
if(ch[x]>='a'&&ch[x]<='z')
{
System.out.print(Character
.toLowerCase(ch[x]));//这里返回的是你判断的字符,
}
if(ch[x]>='A'&&ch[x]<='Z')
{
System.out.print(Character
.toUpperCase(ch[x]));//这里返回的也是你判断的所要得到的字符
}
else
continue;
}pt.newLine();//加个换行好看点,呵呵
// String s1=Arrays.toString(ch);// 这里你打印的还是数组,
// pt.write(s1, 0, s1.length());
pt.flush();
}
bufr.close();
pt.close();
}
}
作者:
王贺
时间:
2013-11-27 13:23
运行了楼主的代码,有点问题,在转换字符大小写有问题,打印的时候没有转换显示吧,
还有就是那个String s1=Arrays.toString(ch)好像就没有转换
下面改了下:
for(int x=0;x<ch.length;x++)
{
if(ch[x]>='a'&&ch[x]<='z')
{
ch[x]=Character.toUpperCase(ch[x]);
System.out.println(ch[x]);
}
else if(ch[x]>='A'&&ch[x]<='Z')//楼主在这用了两个if,
所以运行的不正常,改了先else if
{
ch[x]=Character.toLowerCase(ch[x]);
System.out.println(ch[x]);
}
else
continue;
}
//String s1=Arrays.toString(ch);//这行代码好像根本就没有转换为字符串
pt.write(ch,0,ch.length);//可以直接这么打印
作者:
潘际昌
时间:
2013-11-27 15:52
王贺 发表于 2013-11-27 13:23
运行了楼主的代码,有点问题,在转换字符大小写有问题,打印的时候没有转换显示吧,
还有就是那个String s1 ...
我自己已经解决。
作者:
何超
时间:
2013-11-27 23:10
API文档说的很清楚了 static String toString(char[] a)
返回指定数组内容的字符串表示形式。
所以你的输出是正确的 只不过看起来是数组 实际上是字符串只不过形式是数组的形式
要看到字符串没数组模型 直接用 new String(ch)就行了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2