Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按第一个字符排序_Java - Fatal编程技术网

Java 按第一个字符排序

Java 按第一个字符排序,java,Java,现在的问题是每个保单编号都是一个由9个字符组成的字符串,其中9个字符表示保单的类型 B.建筑政策 C.内容政策 终身保单 五、汽车政策 保单编号的剩余8个字符中的每一个都是十进制数字 我尝试过使用charAt,但有人告诉我有一种稍微好一点的方法 public String getpolicyNo(String initpolicyNo) { /** * Access method to find the first character of the policy to t

现在的问题是每个保单编号都是一个由9个字符组成的字符串,其中9个字符表示保单的类型

  • B.建筑政策
  • C.内容政策
  • 终身保单
  • 五、汽车政策
保单编号的剩余8个字符中的每一个都是十进制数字

我尝试过使用charAt,但有人告诉我有一种稍微好一点的方法

public String getpolicyNo(String initpolicyNo) {

    /**
     * Access method to find the first character of the policy to then
     * determine what type of policy it is.
     */
    String b = "B";
    String C = "C";
    String L = "L";
    String V = "V";

    char c1 = b.charAt(0);
    char c2 = C.charAt(0);
    char c3 = L.charAt(0);
    char c4 = V.charAt(0);


    if (c1 == 0) {
        System.out.println("Its building" + c1);
        return initpolicyNo;
    } else {
        if (c2 == 0) {
            System.out.println("Its Content");
            return initpolicyNo;
        } else {
            if (c3 == 0) {
                System.out.println("Its life");
                return initpolicyNo;
            } else {
                if (c4 == 0) {
                    System.out.println("Its car");

                    return initpolicyNo;
                }
            }
        }
    }
    throw new IllegalArgumentException();
}
我不是在找你为我提供答案,我只是在寻找任何可能的替代方案和可能的建议

非常感谢


Dan

我建议您使用
Enum
。枚举的每个值都有一个序数值,您可以按其排序。
如果您想阅读Enum简介,以下网站将提供帮助:


对于每个枚举值,可以指定一个自定义值,您可以使用该值进行排序。

我建议您使用
枚举。枚举的每个值都有一个序数值,您可以按其排序。
如果您想阅读Enum简介,以下网站将提供帮助:

对于每个枚举值,可以指定一个自定义值,您可以使用该值进行排序

我试过使用charAt,但有人告诉我有点小问题 更好的方法

没有比使用charAt更好的方法来获取字符串的第一个字母

与其有很多if/switch之类的东西,不如在头的一侧多点OOPs

Map<Character, String> myMap = new HashMap<Character, String>() {{
        put('B', "Its building");
        put('C', "Its content");
        put('L', "its life");
        put('V', "its vehicle");
    }} ;
    public void iShouldBeDoingMyOwnWork(String initpolicyNo) {
        System.out.println(myMap.get(initpolicyNo.charAt(0)));
    }
Map myMap=newhashmap(){{
put(‘B’,‘其建筑物’);
put(‘C’,“其内容”);
put(‘L’,‘它的生命’);
放置(‘V’,“其车辆”);
}} ;
public void IshouldbedBedingMyownWork(字符串initpolicyNo){
System.out.println(myMap.get(initpolicyNo.charAt(0));
}
我试过使用charAt,但有人告诉我有点小问题 更好的方法

没有比使用charAt更好的方法来获取字符串的第一个字母

与其有很多if/switch之类的东西,不如在头的一侧多点OOPs

Map<Character, String> myMap = new HashMap<Character, String>() {{
        put('B', "Its building");
        put('C', "Its content");
        put('L', "its life");
        put('V', "its vehicle");
    }} ;
    public void iShouldBeDoingMyOwnWork(String initpolicyNo) {
        System.out.println(myMap.get(initpolicyNo.charAt(0)));
    }
Map myMap=newhashmap(){{
put(‘B’,‘其建筑物’);
put(‘C’,“其内容”);
put(‘L’,‘它的生命’);
放置(‘V’,“其车辆”);
}} ;
public void IshouldbedBedingMyownWork(字符串initpolicyNo){
System.out.println(myMap.get(initpolicyNo.charAt(0));
}

您可以将
枚举
添加到您的代码中,或者您可以使用
开关
语句代替当前具有的
if/else
块:

    char type = initpolicyNo.charAt(0);
    switch (type) {
        case 'B':
            // do stuff
            break;
        case 'C':
            // do stuff
            break;
    }

注意:我认为您的代码可能有问题,因为在我看来您应该打开
initpolicyNo
,而不是实际的类型?

您可以向代码中添加
enum
,或者您可以使用
switch
语句,而不是当前具有的
if/else
块:

    char type = initpolicyNo.charAt(0);
    switch (type) {
        case 'B':
            // do stuff
            break;
        case 'C':
            // do stuff
            break;
    }

注意:我认为您的代码可能有问题,因为在我看来您应该打开
initpolicyNo
,而不是实际的类型?

我不确定您想要实现什么,但我会这样写:

public String getpolicyNo(String initpolicyNo) {
    switch(initPolicyNo.charAt(0))
    {
       case 'B':
          System.out.println("Its building B");
          return initpolicyNo;
       case 'C':
          System.out.println("Its building C");
          return initpolicyNo;
       case 'L':
          System.out.println("Its building L");
          return initpolicyNo;
       case 'V':
          System.out.println("Its building V");
          return initpolicyNo;
    }

    throw new IllegalArgumentException();
}

我不确定你想要达到什么目标,但我会这样写:

public String getpolicyNo(String initpolicyNo) {
    switch(initPolicyNo.charAt(0))
    {
       case 'B':
          System.out.println("Its building B");
          return initpolicyNo;
       case 'C':
          System.out.println("Its building C");
          return initpolicyNo;
       case 'L':
          System.out.println("Its building L");
          return initpolicyNo;
       case 'V':
          System.out.println("Its building V");
          return initpolicyNo;
    }

    throw new IllegalArgumentException();
}
public void(字符串s){
如果(s.长度()<1){
//--这里没什么可看的---
返回;
}
//--不区分大小写--
char c=Character.toUpperCase(s.charAt(0));
开关(c){
案例“B”:
//--这是一座建筑物--
打破
案例“C”:
//--是c--
打破
案例“L”:
//--它是一个l--
打破
案例“V”:
//--这是一个v--
打破
违约:
//--这是另外一回事:(--
}
}
公共无效内容(字符串s){
如果(s.长度()<1){
//--这里没什么可看的---
返回;
}
//--不区分大小写--
char c=Character.toUpperCase(s.charAt(0));
开关(c){
案例“B”:
//--这是一座建筑物--
打破
案例“C”:
//--是c--
打破
案例“L”:
//--它是一个l--
打破
案例“V”:
//--这是一个v--
打破
违约:
//--这是另外一回事:(--
}
}

您可以使用
开关
代替。其余的都可以。既然c1-4是字符,您如何将其与0进行比较?是否要比较initpolicyNo.chartAt(0)?并且您只需返回作为参数的策略编号(
initpolicyNo
)打印后。这将打印所有内容。我相信你的解决方案弄错了。这里的
排序问题是什么?你可以使用
开关来代替。其余的都可以。既然c1-4是字符,你如何将其与0进行比较?不想比较initpolicyNo.chartAt(0)?打印后,您只需返回作为参数的保单编号(
initpolicyNo
)。这将打印所有保单编号。我相信您的解决方案是错误的。这里的
排序问题是什么?