当前位置: 首页 > 知识库问答 >
问题:

按数值递增字母字符

白浩气
2023-03-14

我需要一个java方法,它接受一个整数,然后将其递增并为您提供相应的alpha字符。类似于这样:

public String getAlpha(Integer number) {
   ...
}

因此,如果我传递numbervalue等于0,那么它应该递增并返回字母a。如果我传递它25,那么它应该返回字母z。如果我将数字26传递给它,那么它应该返回aa。如果我将数字27传递给它,那么它应该返回ab等等。

alpha几乎模拟了excel工作表列的表示方式,我需要做的就是通过传递一个数字从方法中获取alpha值。除了从getAlpha返回的字符串之外,没有设置限制必须是最大15字符和最小1字符。

共有3个答案

斜昊空
2023-03-14

它是相同的Excel列命名:

public class Calculator {

    private static String[] letters = new String[]{
        "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
    };

    public static void main(String[] args) {
        System.out.println(calculate(731));
    }

    public static String calculate(int row) {
        return calculateRecursive(row - 1, "");
    }

    private static String calculateRecursive(int row, String res) {
        String val = letters[row % letters.length] + res;
        int i = row / letters.length;
        if(row >= letters.length) {
            return calculateRecursive(i - 1, val);
        }
        return val;

    }
}
孟佑运
2023-03-14

这是如何在Java中从0到25之间的数字生成a-z的:

protected static String getLetter(int code) {
    if (code >= 0 && code <= 25)
        return "" + (char) (code  + 'a');
    else
        throw new IllegalArgumentException("char code is out of bound: " + code);
}

剩下的就是模数学。

曹建明
2023-03-14

我相信这会满足您的要求,我不知道是否可以更有效地做到:

static void printCode(int code) {
  final StringBuilder buffer = new StringBuilder();
  do {
    final int digit = (code - 1) % 26;
    buffer.insert(0, (char)(digit + 'a'));
    code = (code - digit - 1) / 26;
  } while (code > 0);
  System.out.println(buffer);
}
 类似资料:
  • 场景是——我读取文件的最后一行,将其递增一行,然后写回。 读写操作已完成。我发现很难增加alpha数值,因为它有一些条件。 条件包括: 它应该只有3个字符长 示例:A01、A02。。。。A99、B01、B02。。。。B99 一旦达到Z99,应为AA1、AA2、AA3。。。AA9 然后AB1,AB2,。。。AZ9 因此,基本上,当递增值时,不应变为AA10,即4个字符 我现在所做的是分离字母和整数,

  • 问题内容: 改善这个问题 我是android编码练习的新手 假设这是我的第一个ID,我希望使用共享的首选项将此值自动递增1并用作员工ID。如ABB20180002,ABB20180003,ABB20180004等。 问题答案: 您不能直接增加字母数字值。如果要这样做,您需要为其编写一些代码行 这是 activity_main.xml 这是 MainActivity.java 希望这会帮助你。

  • 问题内容: 这可能在MySql中吗?我可以有一个以字母为前缀的自动递增主键,例如R1234,R1235,R1236 …等等吗? 问题答案: 您可以做的是将密钥存储为两列。一个char前缀和一个auto-incrementing int,它们都被分组为主键。

  • 问题内容: 我试图弄清楚如何将数组中的一组字母值向下移动一个步骤。例如,我的数组包含值(“ d”,“ e”,“ f”,“ g”,“ h”),而我想将其更改为(“ c”,“ d”,“ e”,“ f” “, “G”)。这是我正在使用的代码: 当我使用正值时,字母会改变;但是,负数似乎根本不起作用。 问题答案: PHP已超载了字符串;并非如此。你可以做同样的事情更清洁的代码,以及: 这是一个演示。请注意

  • 问题内容: 是否可以在MySQL中制作结合了alpha元素和数字的自动增量功能? 我有一个具有QAb99,QAb101,QAd9003等键的现有系统。最大数字部分的范围为1到9999,而字母以QA开头,范围从QAa到QAd等,最终将通过QAd9999到QAe1等。 。 在SQL或SQL外部(例如php脚本)管理生成新密钥是否更好? 谢谢。 问题答案: 我前一阵子问过。不幸的是,Mysql并没有这样

  • 问题内容: Java中的“自动递增”字母-这可能吗?从A到Z而没有第三方库? 问题答案: 是的,您可以这样做: 类型转换也是可能的: