在java中将字符串转换为整数,将整数转换为字符串

时间:2016-12-11 11:46:42

标签: java string integer ascii

我正在尝试将字符串转换为整数字符串表示形式,然后将其转换回来 我会详细解释这个要求

假设我有一个密码字符串“abc”,我想将其转换为每个字符“097098099”的ascii值字符串 然后我想把它转换回字符串“abc”

在c中,这可以使用sprintf和scanf轻松完成,但在Java中我很困惑。 谢谢。

3 个答案:

答案 0 :(得分:0)

使用此方法转换为源字符串的Ascii表示形式:

public static void main(String[] args) {
    String source = "abc";
    String dest = convertToAsciiString(source);
    System.out.println(dest);
}

public static String convertToAsciiString(String source) {
    String dest = "";
    int index = 0;
    while (index < source.length()) {
        char c = source.charAt(index);
        int charAscii = c;
        dest += (charAscii >=100 ?charAscii : "0" + charAscii);
        index++;
    }
    return dest;
}

答案 1 :(得分:0)

将更大的问题分解为更小的问题。单独解决每个较小的问题,然后将小解决方案结合到整个问题的大解决方案中。

在这种情况下,我可以看到两个较小的问题需要解决:

  1. 将单个ASCII字符转换为整数表示。

  2. 将整数表示法合并到整个字符串

  3. 这有家庭作业的感觉,所以我不会为你写一个程序,但我会帮助一些伪代码:

    myString <- "abc"
    newString <- ""
    
    for each character thisChar in myString
      // Here "&" is the string concatenation operator
      newString <- newString & convertToInteger(thisChar)
    endfor
    
    return newString
    

    这不是Java,并且您应该在Java版本中使用许多特定于Java的调整。如果你自己找到它们,你会更好地学习它们。您可以从查看StringBuilder类的Javadoc开始。

答案 2 :(得分:0)

你可以这样做,这是转换为ASCII字符串的int表示的方法,按照这个例子,你可以自己编写反向方法,然后以相反的方式进行转换。

public static String convertToIntString(String str) {
    StringBuilder builder = new StringBuilder(str.length() * 3);
    str.chars().map(c -> (int)c).forEach(i -> builder.append((Integer.toString(i).length() == 2 ? Integer.toString(i).length() == 1 ? "00" : "0" : "") + i));
    return builder.toString();
}

forEach(...)中的代码是为了确保char是用三位数写的( 097而不是97

请注意我编写的代码使用Java Stream API,因此只有安装了Java 8才能工作。