草庐IT

java - 添加 char 和 int

据我了解,char是单个字符,即一个字母、一个数字、一个标点符号、一个制表符、一个空格或类似的东西。因此,当我这样做时:charc='1';System.out.println(c);输出1正是我所期望的。那么为什么当我这样做时:inta=1;charc='1';intans=a+c;System.out.println(ans);我最终得到输出50? 最佳答案 你得到它是因为它添加了ASCIIvalue的炭。您必须先将其转换为int。 关于java-添加char和int,我们在Stac

java - 为什么我们允许在 java 中将 char 分配给 int?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:charandintinJavaAsicII表:http://www.asciitable.com下面的代码打印出对应字符的十进制值,例如"123"->495051publicvoidfoo(Stringstr){for(intx=0;x但我注意到java是一种强类型语言,这意味着所有东西都必须在编译时转换,但代码怎么知道如何以及何时将char转换为AsicII表中正确的Dec值?我是否搞砸了任何Java/编程基础知识?

java - chars 在 Java 中有内在的 int 值吗?

为什么这段代码打印出97?我之前没有在我的代码中的任何其他地方将97分配给“a”。publicstaticvoidpermutations(intn){System.out.print('a'+0);} 最佳答案 a是char类型,chars可以隐式转换为int。a由97表示,因为这是smalllatinlettera的代码点。System.out.println('a');//thiswillprintout"a"//Ifwecastitexplicitly:System.out.println((int)'a');//thisw

java - 你能用==比较字符吗?

这个问题在这里已经有了答案:Whatisthedifferencebetween==andequals()inJava?(26个答案)关闭4年前。对于字符串,您必须使用等于来比较它们,因为==仅比较引用。如果我将字符与==进行比较,是否会给出预期的结果?我在stackoverflow上看到过类似的问题,例如Whatisthedifferencebetween==vsequals()inJava?但是,我还没有看到有人询问关于在字符上使用==。

java - 通过 RFC 5987 处理带空格的文件名*参数导致文件名中的 '+'

我有一些我正在处理的遗留代码(所以不,我不能只使用带有编码文件名组件的URL),允许用户从我们的网站下载文件。由于我们的文件名通常使用多种不同的语言,因此它们都存储为UTF-8。我编写了一些代码来处理RFC5987到正确文件名*参数的转换。在我有一个包含非ascii字符和空格的文件名之前,这很好用。根据RFC,空格字符不是attr_char的一部分,因此它被编码为%20。我有新版本的Chrome和Firefox,它们都在下载时转换为%20到+。我试过不对空格进行编码并将编码后的文件名放在引号中并得到相同的结果。我嗅探了来自服务器的响应,以验证servlet容器没有破坏我的header,

Java - 为什么 char 在不应该的情况下隐式转换为字节(和短)原语?

编译器的某些功能让我感到困惑(使用Eclipse的OracleJDK1.7)。所以我得到这本书说char基元需要显式转换为short和byte,这一切都是有道理的,因为数据类型的允许范围不重叠。换句话说,下面的代码可以工作(但如果没有显式类型转换就无法工作):charc='&';byteb=(byte)c;shorts=(short)c;打印b或s会正确显示数字38,这相当于Unicode中的(&)。这让我想到了我的实际问题。为什么以下方法也有效?bytebc='&';shortsc='&';System.out.println(bc);//Correctlydisplaysnumbe

java - Java BoxLayout中单个字符在Y轴上对齐偏心

在Java中,将某些字符沿y轴对齐到BoxLayout的中心似乎存在问题。我不知道是什么导致了这种情况,我已经创建了一个SSCCE来演示这种效果。在这个例子中,我只使用了字符“a”,并且我在每个JPanel的正中间画了一条线来展示每个案例离中心有多远。粗体文本的情况似乎排列得很好,但正常格式和斜体都严重偏离中心,尽管同时使用了setAlignmentX和setHorizo​​ntalAlignment。感谢任何帮助理解这种影响的帮助。如果我的特定计算机上的Java不知何故出现问题,这是我运行SSCCE时屏幕上显示的图像,它沿y轴加载三个带有BoxLayouts的不同JPanel,并放置

java - 为什么我的字符打印为数字而不是字符?

根据Java三元运算符表达式?语句1:语句2,如果expression为真则statement1将被执行,如果expression为假则statement2将被执行。但是当我运行时://someunnecessarycodesnotdisplayingchary='y';inti=0;System.out.print(false?i:y);我期待它打印y但它打印121,为什么?编辑根据manouti的回答,编译器解释为int,但如果是这样,那为什么我在i看到死代码?如果我执行System.out.print(false?0:x);那么我得到y,那么为什么在这种情况下编译器不解释作为in

java - EL 表达式中的字符比较

这个问题在这里已经有了答案:HowtocompareacharpropertyinEL(1个回答)关闭6年前。我想做这样的事情:tadaaaam当somestring为“11011”但它不起作用时。我可以用打印它${somestring.charAt(0)}它是“1”,但上面的比较失败了。对比如下:if(somestring.charAt(0)=='1')纯Java中的worx(条件为真)。有什么想法吗?

Java:带有 unicode 字符的 String.toCharArray()

我知道char不能包含Unicode字符(比如charc='\u1023')。那我该怎么做Strings="ABCDEFG\u1023";char[]c=s.toCharArray();出于性能原因,我想将s转换为CharArray,因为我必须遍历可能很长的字符串中的每个字符,这是低效的。任何达到相同结果的东西都很好。非常感谢!编辑:实际上char可以包含unicode字符。我只是在装傻。感谢那些无论如何提供帮助的人。 最佳答案 谁告诉你在Java中char不能包含Unicode字符,waswrong:Thevaluesofthei