sonofbaba 2017-09-08 02:01 采纳率: 3.7%
浏览 1080

小弟有一段代码不太明白求大佬赐教

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
String s=scanner.nextLine();
int len=s.length();
int []arr1=new int[10];
for(int i=len-1;i>=0;i--){
if(arr1[s.charAt(i)-48]==0){
System.out.print(s.charAt(i)-48);
arr1[s.charAt(i)-48]++;
}
}
}
}
}
if(arr1[s.charAt(i)-48]==0){
这句charAt(i)返回的不是具体数字吗,为什么要减48啊,我知道48是ascii的0

  • 写回答

6条回答 默认 最新

  • Seven_Hsu 2017-09-08 02:24
    关注

    首先你要知道charAt的作用是返回字符串指定位置的char值。如果s="102"。那么chatAt(0)='1',这个‘1’是字符,不是数字。而后面是判断是否为0。当然要用其ASCII的数值减48了

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站