hyetpang 2015-12-09 14:52 采纳率: 39.4%
浏览 1825

java字符数组转化字符串连接问题

import java.io.*;
import java.util.*;
import java.util.Calendar;
public class Year {

public static void main(String[] args) throws IOException {
  //判断是否为闰年
  System.out.print("Enter 'year':");
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  String syear = br.readLine();
  char [] num = syear.toCharArray();
  if(num.length==4)
  {
      for(int i = 0;i<num.length;i++)
      {
          if(Character.isDigit(num[i]))
          {
              if(i==3)
              {
                  int year = Integer.parseInt(syear);
                  if(year%4==0&&year%100!=0)
                  {
                      System.out.println("你输入的年份"+"\""+year+"\""+"是闰年");
                  }
                  else
                  {
                      System.out.println("你输入的年份"+"\""+year+"\""+"是平年");
                  }
              }
          }
          else
          {
              System.out.println("请输入代表年份的数字!");
              break;
          }
      }
  }
  else
  {
      System.out.println("请输入四位表示年份的数字!");
  }
  //判断输入的天数
  Calendar calendar = Calendar.getInstance();
  BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
  String syearmonth = br0.readLine();
  char [] tochararray = syearmonth.toCharArray();
  for(int i = 0;i<tochararray.length;i++)
  {
      if(Character.isDigit(tochararray[i]))
      {
          String digit = "";
          digit =digit + tochararray[i];
          if(i==5)
          {
             int j = digit.length();
             System.out.println(j);
             System.out.println(digit);
          }
          switch(i)
          {case(4):
               String s0year = digit.substring(0,3);
               String smonth = digit.substring(4,5);
               byte year = Byte.parseByte(s0year);
               byte month = Byte.parseByte(smonth);
               calendar.set(Calendar.YEAR,year);
               calendar.set(Calendar.MONTH,month-1);
               //calendar.set(Calendar.DATE,1);
               //calendar.roll(Calendar.DATE, -1);
               int maxday = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
               //int getdays = calendar.get(Calendar.DATE);
               System.out.println(year+"年"+month+"月"+"有"+maxday+"天" );
               break;
          case(5):
               s0year = digit.substring(0,4);
               smonth = digit.substring(4,6);
               year = Byte.parseByte(s0year);
               month = Byte.parseByte(smonth);
              calendar.set(Calendar.YEAR,year);
              calendar.set(Calendar.MONTH,month-1);
               maxday = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
              System.out.println(year+"年"+month+"月"+"有"+maxday+"天" );
              break;
          }
      }
  }

}
}


```这是一个自己写的输入字符判断闰年和根据年月输出这个月有几天的程序,问问,为什么digit没法接收char数组的字符?用length方法获取长度时显示digit的长度为1;并且digit的值为6,怎么回事呢?

  • 写回答

2条回答 默认 最新

  • 码生 2015-12-09 15:34
    关注

    你的digit变量里面,接受的是第二次输入,并没有包含年份图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料