Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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_String_Char - Fatal编程技术网

Java 在一个整数中返回多个数字

Java 在一个整数中返回多个数字,java,string,char,Java,String,Char,这是我将字符转换成数字的简单代码,因为这样我就必须进行冒泡排序。我想返回一个整数,它是我的字符的Ascii码的组合。 例如,如果我有一个像b78这样的字符串,我的方法ascii应该执行如下操作: “b”=98,“7”=55,“8”=56 但我想返回一个整数:985556。我只想返回整数,而不是数组int[]。我要做什么才能做到这一点 public class Example{ public static int ascii(String s){ for(int i=0

这是我将字符转换成数字的简单代码,因为这样我就必须进行冒泡排序。我想返回一个整数,它是我的字符的Ascii码的组合。 例如,如果我有一个像b78这样的字符串,我的方法ascii应该执行如下操作:

“b”=98,“7”=55,“8”=56

但我想返回一个整数:985556。我只想返回整数,而不是数组int[]。我要做什么才能做到这一点

public class Example{
    public static int ascii(String s){ 
        for(int i=0 ; i < s.length() ; i++){
            char c = s.charAt(i);
            int j= (int)c;
        }
        // I don,t know what I have to return
    }
    public static void main(String[] args){
        String[] str = {"b78","c&3","a00","a01","zz9"};
        String q = str[0];

        int c = ascii(q);
        System.out.print(c);
    }
}

根据你给出的例子,我认为你想要

public static int ascii(String s) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        sb.append(Integer.toString(c));
    }
    return Integer.parseInt(sb.toString());
}

public static void main(String[] args) {
    String[] str = { "b78", "c&3", "a00", "a01", "zz9" };
    for (String q : str) {
        int c = ascii(q);
        System.out.printf("%s %d%n", q, c);
    }
}

我不明白您为什么要尝试这个,但我认为您可以使用字符串连接的+运算符。使用integer.toString将每个字符转换为ASCII码,并将该整数转换为字符串。然后使用+运算符连接它们,并再次使用Integer.parseIntString str方法转换结果。我想你可以得到你想要的结果。

你确定返回列表或其他数据结构不容易吗?将每个数字转换成字符串并将它们连接在一起。完成后,将该字符串解析回int并返回它。为什么要这样做?至少返回一个数组@chrylis是因为我想比较数组中的其他字符串,我必须按降序对字符串数组重新排序,所以我假设我需要一个整数来做这个,你真的不想做这个。如果你按照你描述的那样做,他们会被打乱顺序。只需将它们作为字符串进行比较。@Francesco你想让az9跟在za9后面吗?@DavidWallace我只想按降序对字符串数组进行重新排序,方法无关紧要。我认为将字符串转换成数字是个好主意,所以我要求这样做。是的,但如果使用这种方法,它们不会按降序排列。@DavidWallace抱歉,我是Java新手。是的,这是真的,但若我将字符串转换成数字,然后我将编写一个方法,对这些数字重新排序,为什么它不起作用?在这种情况下,zz9是最大的,所以是第一个,然后a00是最小的,所以是最后一个。但是az9会给你9712257,za9会给你1229757,这是较少的。所以这两个最终会出问题。你真的需要重新考虑一下。正如我在问题下的评论中所说,您确实不想将字符串转换为整数。只需将它们作为字符串进行比较。你说你不能,但你没说为什么@弗朗西斯科
b78 985556
c&3 993851
a00 974848
a01 974849
zz9 12212257