简化了数字范围文件夹检查的许多if



我有一个文件夹结构,我需要打开基于给定数字的文件夹,如下所示:

文件夹:

-1000
--1000
--1001
--1002
--1003..
--1250
-1251
--1251
--1252
--1253
--1254
...
--1500
-1501
--1501
and go on, for each 250 files, create a new folder LastNumber+1 

有没有一种方法可以让它变得简单我只知道这样做:

int typedNumber = 1501;
if(typedNumber > 1000 && typedNumber < 1250) {
OpenFolder(1000)
}
if(typedNumber > 1251 && typedNumber < 1500) {
OpenFolder(1251)
}
if(typedNumber > 1501 && typedNumber < 1700) {
OpenFolder(1501)
} 

为什么如果不会是一种方式,因为我有超过15000个文件,所以15000/250=60 IFS

这可能吗?像

someMethodToGetTypedNumberRange(int number) {
//something do know where folder range the number is in
}

obs:无法执行文件。。搜索因为它需要很长时间

我很欣赏教程或任何方向

我认为简单的除法和乘法就可以了。此代码:

  int typedNumber = 770;
  int folderNum = typedNumber / 250 * 250 + 1;
  System.out.println( folderNum );

打印输入值770的"751"。这就是你想要的吗?

编辑:既然你更新了OP,请检查下面的数字列表和代码,看看它是否符合你的要求。

  public static int folderNumber( int fileNumber ) {
      int folderNum = (fileNumber-1) / 250 * 250;
      if( folderNum > 1000 ) folderNum++;
      if( folderNum < 1000 ) folderNum = 1000;
      return folderNum;
  }
  public static void main( String[] args )
  {
      for( int i = 1000; i < 3000; i += 250 ) {
         System.out.println( (i-1) + " -> " + folderNumber( i-1 ) );
         System.out.println( i + " -> " + folderNumber( i ) );
         System.out.println( (i+1) + " -> " + folderNumber( i+1 ) );
      }
   }

产生输出:

999 -> 1000
1000 -> 1000
1001 -> 1000
1249 -> 1000
1250 -> 1000
1251 -> 1251
1499 -> 1251
1500 -> 1251
1501 -> 1501
1749 -> 1501
1750 -> 1501
1751 -> 1751
1999 -> 1751
2000 -> 1751
2001 -> 2001
2249 -> 2001
2250 -> 2001
2251 -> 2251
2499 -> 2251
2500 -> 2251
2501 -> 2501
2749 -> 2501
2750 -> 2501
2751 -> 2751
BUILD SUCCESSFUL (total time: 1 second)

最新更新