我的文件夹名称如下:
"1-500"
"501-1000"
"1001-1500"
"1501-2000"
"2501-3000"
etc....
给定1777
之类的ID如何找到它所属的文件夹的名称?
我使用的是Java,但您的答案可能是伪代码。
谢谢!
答案 0 :(得分:6)
以下是:
// Folder 0: 1-500
// Folder 1: 501-1000
// Folder 2: 1001-1500
// ...
int n = 1777;
int folder = (n-1) / 500;
System.out.printf("%d belongs to folder %d - %d",
n, folder * 500 + 1, (folder+1) * 500);
<强>输出:强>
1777 belongs to folder 1501 - 2000
整数除法将处理获得正确文件夹索引所需的“地板”。 请谨慎包含- 1
。否则,n = 500
将以第1组(而不是0)结束。
答案 1 :(得分:3)
int n = 1777;
int temp = ((n / 500) * 500) + 1 ;
if(temp > n && n !=0){
temp-=500;
}
String result = "" + temp + " - "+ (temp + 499);
System.out.println(result);
答案 2 :(得分:2)
如果你想要一个更通用的方法,那么它(基于https://stackoverflow.com/users/276052/aioobe的解决方案):
public static void main(String[] args) {
for (int i = 1; i <= 3000; i++) {
System.out.println(i + "\t" + getRange(i, 1000));
}
}
private static String getRange(int id, int step) {
int x = ((id - 1) / step);
return (x * step + 1) + "-" + ((x + 1) * step);
}
答案 3 :(得分:1)
foreach ( folder in folders )
[from, to] = split( folder.name, "-" )
if ( id < from || id > to )
continue
// found the right folder.
答案 4 :(得分:1)
“1-500” - &gt;文件夹0
“501-1000” - &gt;文件夹1
“1001-1500” - &gt;文件夹2
...
使用整数除法获取(1777 - 1)/ 500以获取文件夹编号。
答案 5 :(得分:0)
只需遍历您的文件夹,将名称拆分为“ - ”,解析两个数字并检查您的号码是否在范围内:)
答案 6 :(得分:0)
您可以使用几种情况,在这种情况下,您可以检查它是否在指定值之间,例如:10 < x && x < 20
答案 7 :(得分:0)
如果总是达到五百的范围,你可以这样做:
for(int i = 0; i < Integer.MAX_VALUE; i++){
if(i*500+1 >= x && (i+1)*500 < x){
System.out.println("X is between " + (i*500 + 1) + " and " + ((i+1) * 500));
}
}
变量'x'是id。
如果必须使用文件夹名称,则需要读取文件夹名称,在“ - ”上拆分,然后尝试将它们解析为整数并使用它而不是我的for循环。
答案 8 :(得分:0)
这是你的功能:
public String folderName(int num)
{
StringBuilder sb = new StringBuilder();
sb.append(1+(num-1)/500).append('-').append((1+((num-1)/500))*500);
return sb.toString();
}