WUSTOJ 1237: 将八进制的字符串转换成等价的十进制字符串(Java)
时间: 2023-06-17 15:04:12 浏览: 100
以下是Java语言的代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String octalStr = sc.nextLine();
int decimal = Integer.parseInt(octalStr, 8);
String decimalStr = Integer.toString(decimal);
System.out.println(decimalStr);
}
}
```
首先,使用Scanner类从标准输入中读取一个八进制字符串。
然后,使用Integer类的parseInt方法将八进制字符串转换为十进制整数。
接着,使用Integer类的toString方法将十进制整数转换为字符串。
最后,使用System.out.println方法将转换后的十进制字符串输出到标准输出。
相关问题
编写一个程序,输入一个十进制数,输出与之等价的八进制数 编写一个程序,输入一个十进制数,输出与之等价的八进制数 使用c语言
在C语言中,你可以通过循环和除法运算将十进制转换成八进制。这里有一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
// 函数用于将十进制转为八进制字符串
char* decimal_to_octal(int decimal_num) {
char octal_str[32]; // 八进制字符串足够大存储32位整数
int i = 0;
while (decimal_num > 0) {
octal_str[i] = decimal_num % 8 + '0'; // 余数转换为字符并加到字符串前
decimal_num /= 8; // 向左移动一位
i++;
}
if (i == 0) {
octal_str[i] = '0'; // 如果原数字为0,则字符串只包含'0'
}
octal_str[i] = '\0'; // 添加终止符
reverse(octal_str); // 逆序字符串,因为最低位在最左边
return octal_str;
}
// 逆序函数
void reverse(char str[]) {
int start = 0, end = strlen(str) - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
int decimal_input;
printf("请输入一个十进制数: ");
scanf("%d", &decimal_input);
char* octal_output = decimal_to_octal(decimal_input);
printf("等价的八进制数为: %s\n", octal_output);
free(octal_output); // 释放内存
return 0;
}
```
当你运行这个程序并输入一个十进制数,它会返回相应的八进制形式。例如,如果输入`255`,则输出将是`377`。
C#中,将字符串中包含的汉字数字替换成十进制整数
在C#中,如果你想要把字符串中的汉字数字替换为对应的十进制整数,你可以通过自定义方法结合正则表达式来实现。这里有一个简单的示例:
```csharp
using System;
using System.Text.RegularExpressions;
public class MainClass {
public static void Main(string[] args) {
string str = "二零二三年";
Console.WriteLine(ConvertChineseNumbersToDecimal(str));
}
public static int ConvertChineseNumbersToDecimal(string str)
{
// 定义一个字面常量映射,对应汉字到阿拉伯数字的值
string digitMap = "零一二三四五六七八九";
// 正则表达式匹配模式,找到所有连续的汉字数字
string pattern = @"\d{1}(?:[一二三四五六七八九]{1})+";
Regex regex = new Regex(pattern);
MatchCollection matches = regex.Matches(str);
// 遍历匹配结果,转换并累加每个匹配项
int decimalValue = 0;
foreach (Match match in matches) {
string matchStr = match.Value.Replace("零", "0").Replace("一", "1");
decimalValue += int.Parse(matchStr);
}
return decimalValue;
}
}
```
这个程序会读取输入字符串`str`,查找其中的汉字数字,然后用它们的数字等价物替换,并计算出总和。例如,"二零二三年"会被转换成2023。
阅读全文