javajava判断字符串对称输出

Java中未被初始化的字符串打印出“null”的问题的分析 - Liubey的只言片语 - ITeye博客
博客分类:
今天在研究Java面试题的时候发现了这道题,觉得挺有意思,记录下来。
一个为null的字符串被println出来会是什么呢。
public static void main(String[] args) {
System.out.println(s+"aaaa");
输出是“nullaaaa”
这是为什么呢,String未被初始化是不可能成为“null”的,因为它是null的。
翻看了一下PrintStream,发现在他打印的时候做了马脚,源码是这样子的
public void print(String s) {
if (s == null) {
s = "null";
还有一个附加的问题是如果打印s+s会发生什么情况,两个null变量相加被打印,首先执行的是相加,查看反编译的Java代码知道是执行了StringBuilder的append方法,我们查看源码
public AbstractStringBuilder append(String str) {
if (str == null) str = "null";
int len = str.length();
ensureCapacityInternal(count + len);
str.getChars(0, len, value, count);
发现一样对null的字符串进行了特殊的处理。
PS:新浪SAE怎么这么不给力啊,我的网站上不去。
论坛回复 /
(1 / 1777)
浏览: 70004 次
来自: 大连
frogEye 写道写得挺好的,但是不得不说:错别字一大堆
写得挺好的,但是不得不说:错别字一大堆
3Q.也是刚刚解决掉
shmily2038 写道现在的技术书籍,就是缺少对细节的深入 ...
现在的技术书籍,就是缺少对细节的深入描绘,都没啥实际看点。扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
用Java语言将字符串按照下面的要求输出:要求一:英文字母从A到Z,不区分大小写,例如输入:Type后,输出:epTy要求二:同一个英文字母的大小写同时存在时,按照输入的顺序输出:例如输入:BabA后,输出:aABb要求三:非英文字母的其他字符保持原来的位置例如输入:Bv?e后,输出Be?v
傻慧慧≠4520
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
public class Test {public static void main(String[] args) {Test t = new Test();System.out.println(t.sequenceString(&BabA&));}public String sequenceString(String str) {char[] charArray = str.to...
大哥,你写的程序测试第二个条件的时候跟题目中的结果不一样,用问题!请检查。。。。。。
public class TestSequenceString {\x09public static void main(String[] args) {\x09\x09TestSequenceString t = new TestSequenceString();\x09\x09System.out.println(t.sequenceString2("BabA"));\x09}\x09public String sequenceString2(String str) {\x09\x09char[] array = str.toCharArray();\x09\x09for (int i = 0; i < array.length - 1; i++) {\x09\x09\x09if (!isLetter(array[i])) {\x09\x09\x09\x09\x09\x09\x09}\x09\x09\x09for (int j = 0; j < array.length - 1 -) {\x09\x09\x09\x09if (!isLetter(array[j]))\x09\x09\x09\x09\x09\x09\x09\x09\x09for (int k = j + 1; j < array.length - 1 - k++) {\x09\x09\x09\x09\x09if (!isLetter(array[k]))\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09int result = isGreater(array[k], array[j]);\x09\x09\x09\x09\x09if (result < 0) {\x09\x09\x09\x09\x09\x09char c = array[k];\x09\x09\x09\x09\x09\x09array[k] = array[j];\x09\x09\x09\x09\x09\x09array[j] =\x09\x09\x09\x09\x09}\x09\x09\x09\x09\x09j =\x09\x09\x09\x09}\x09\x09\x09}\x09\x09}\x09\x09return String.valueOf(array);\x09}\x09public boolean isLetter(char value) {\x09\x09return (value >= 'a' && value = 'A' && value <= 'Z');\x09}\x09public int isGreater(char c1, char c2) {\x09\x09return String.valueOf(c1).toLowerCase()\x09\x09\pareTo(String.valueOf(c2).toLowerCase());\x09}}
为您推荐:
其他类似问题
扫描下载二维码(小战老师)
第三方登录:浏览器直接请求Action,Action输出了字符串,浏览器能显示什么 - Java Web开发当前位置:& &&&浏览器直接请求Action,Action输出了字符串,浏览器浏览器直接请求Action,Action输出了字符串,浏览器能显示什么&&网友分享于:&&浏览:0次浏览器直接请求Action,Action输出了字符串,浏览器会显示什么。刚用浏览器直接请求action不报404也不报500是不是指浏览器已经找到了请求的action------解决思路----------------------你在页面输入点什么,看是否显示就知道是不是指浏览器已经找到了请求的action了。------解决思路----------------------看你返回的是什么啊。&------解决思路----------------------如果你的action里定向到某个jsp视图的话会显示jsp中的内容
或者response返回的内容可以在浏览器显示------解决思路----------------------response设置响应结果,你看看------解决思路----------------------返回200找到------解决思路----------------------你可以打开浏览器的开发者工具,看下你的http请求,200访问正常,看response里边有你要返回的数据没有。------解决思路----------------------返回的直接是字符串啊,是正确的
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有关于输出字符串的问题【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:631,645贴子:
关于输出字符串的问题收藏
public class N{ public static void main(String[] args) {&& String Myname="Java\u2122";&& System.out.println(Myname);&& }}在书上说明(\u2122)是TM的Unicode字符,但是在shell的输出结果是一个“?”C:\Users\EasyScofield\Desktop&javac N.javaC:\Users\EasyScofield\Desktop&java NJava?难道是Windows下不识别?
下班等人回答,谢谢
书上有什么别的包要引入吗?import 什么的?
这里有一个,不过要用到apache的lang包&&&&& 下载地址:&&&&&&&&&&&&&& import&&& mons.lang.StringU&&&&& import&&& java.util.*;&&&&& public&&& class&&& HTMLHelper&&& {&&&&&&&&&&&&& /**&&&&&&&&&&&&&&& 忽略了ISO&&& Latin-1&&& 特殊字符以及&&&&&&&&&&&&&&& &半个空白位&&&&&&&&&&&&&&& 和&&&&&&&& 一个空白位&&&&&&&&&&&&&&&&&&& 加入了"\"&&&&&&&&&&&&&&&&&&& &&&& &&&& 小于号或显示标记&&&&&&&&&&&&&&& &&&& &&&& 大于号或显示标记&&&&&&&&&&&&&&& &&&& &&&& 可用于显示其它特殊字符&&&&&&&&&&&&&&& &&&& "&&& 引号&&&&&&&&&&&&&&& &&&& \u00AE&&& 已注册&&&&&&&&&&&&&&& &&&& \u00A9&&& 版权&&&&&&&&&&&&&&& &&&& \u2122&&& 商标&&&&&&&&&&&&&&& &&&&&&&& 不断行的空白&&&&&&&&&&&&&&& */&&&&&&&&&&&&& public&&& final&&& static&&& HashMap&&& specialCharSet&&& =&&& new&&& HashMap();&&&&&&&&&&&&& static&&& {&&&&&&&&&&&&&&&&&&&&& specialCharSet.put("&","&lt");&&&
&&&&&&&&&&&&&&&&&& specialCharSet.put("&","&");&&&&&&&&&&&&&&&&&&&&& specialCharSet.put("&","&");&&&&&&&&&&&&&&&&&&&&& specialCharSet.put("\"","&");&&&&&&&&&&&&&&&&&&&&& specialCharSet.put("\u00AE","&");&&&&&&&&&&&&&&&&&&&&& specialCharSet.put("\u00A9","&");&&&&&&&&&&&&&&&&&&&&& specialCharSet.put("\u2122","&");&&&&&&&&&&&&&&&&&&&&& specialCharSet.put("&&& ","&");&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&& /**&&&&&&&&&&&&&&& *&&& 替换所有的HTML字符(主要为javascript所用)&&&&&&&&&&&&&&& *&&& @param&&& s&&&&&&&&&&&&&&& *&&& @return&&&&&&&&&&&&&&& */&&&&&&&&&&&&& public&&& static&&& String&&& substitute(String&&& s){&&&&&&&&&&&&&&&&&&&&& s=s.trim();&&&&&&&&&&&&&&&&&&&&& for(Iterator&&& i&&& =&&& specialCharSet.keySet().iterator();i.hasNext();){&&&&&&&&&&&&&&&&&&&&&&&&&&&&& String&&& repl=(String)i.next();&&&&&&&&&&&&&&&&&&&&&&&&&&&&& String&&& with=(String)specialCharSet.get(repl);&&&&&&&&&&&&&&&&&&&&&&&&&&&&& s=StringUtils.replace(s,repl,with);&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&& return&&&&&&&&&&&&&&&& }&&&&&&&&&&&&& public&&& static&&& void&&& main(String[]&&& args)&&& {&&&&&&&&&&&&&&&&&&&&& System.out.println(substitute("\\tzzf\\\u00AE\u00A9\u2122\"&&&ddd&&&&& "));&&&&&&&&&&&&& }&&&&& }
不知道是下载commons-lang-current.zip还是commons-lang-current-src.zip,下载之后应该解压在哪里,麻烦告知一下,谢谢了
登录百度帐号推荐应用}

我要回帖

更多关于 string倒叙输出 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信