【问题标题】:How to Divide a String Into char Arrays如何将字符串划分为 char 数组
【发布时间】:2013-04-03 21:13:00
【问题描述】:

我正在尝试将字符串划分为 char 数组。我有一个程序可以将 char 数组(7 个字符)从二进制转换为 ASCII 文本。所以我想要做的是将字符串分解为 'Arduino 代码' 或 C、C++ 或 Java 中的 7 个字符的字符数组。有什么建议么?谢谢!

编辑:

这是我正在使用的程序:

String getText(String str) {

  String text = "";

  char bits[] = "1001000";
  char new_char = 0;

  for (int i = 7; i >= 0; i--)
  {

    int current_bit = bits[i] - '0';
    new_char |= current_bit << (7-i);

  }

  text += (String) new_char + "";

  return text;

}

【问题讨论】:

  • C 本身甚至没有字符串类型,这与字符数组确实有任何不同。
  • ASCII 文本的二进制形式 ASCII 文本。您可能会看到没有工作要做。
  • 如果我给程序 7 个二进制位 (1001000),它将返回正确的字符。但我想有一个程序可以返回整个二进制字符串的文本值,例如:1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 要转换为文本

标签: java c++ c arrays char


【解决方案1】:

你可以使用:

String s = "java";
char[] ch = s.toCharArray();

更新
好吧,在我的声誉列表中看到一个红色 (-2) 点后,我正在看这篇文章。令我惊讶的是,这个问题与我回答的问题不同。现在,在阅读了您的 Edited question 之后,我将发布 新答案 。您可以使用Integer.parseInt() 方法来实现您在Java 中寻找的内容。以下是如何使用此方法的简短演示:

class  BinaryToWords
{
    static String returnString(String input)
    {
        String parts[] = input.split("\\s+");
        StringBuilder sBuilder = new StringBuilder();
        for (String part : parts)
        {
            int i = Integer.parseInt(part, 2);//Parses the string argument(part) as a signed integer in the radix(2).
            char ch = (char)i;
            sBuilder.append(String.valueOf(ch));
        }
        return sBuilder.toString();
    }
    public static void main(String[] args) 
    {
        String binary = "1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100";//Input the binary format.
        System.out.println(returnString(binary));
    }
}

上述代码的输出是:

Hello World

您也可以检查其他输入。如果它适用于所有可接受的输入,请告诉我。

【讨论】:

    【解决方案2】:

    什么意思? C\C++ 字符串本质上是一个字符数组。如果您有一个指向 char (=string) 的指针,那么这就是您的数组。否则,如果你有一个 std::string,你可以使用它的 .c_str() 方法。

    【讨论】:

    • 字符串不是指向char*的指针;它是一个指向 char 的指针 --- 其中 char 属于一个数组(显式或隐式),并且后续元素的值为 0
    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 2015-11-30
    • 2011-10-04
    • 2012-05-16
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    相关资源
    最近更新 更多