如何用字串符形式将-3.1变为-1.3
时间: 2023-05-11 21:02:02 浏览: 124
可以使用以下代码将-3.1变为-1.3:
```
local num = -3.1
local str = tostring(num):gsub("%d", function(d)
if d == "1" then
return "3"
elseif d == "3" then
return "1"
else
return d
end
end)
local result = tonumber(str)
```
这段代码将数字转换为字符串,然后使用 `gsub` 函数将字符串中的数字 1 和 3 互换,最后再将字符串转换回数字即可。
相关问题
用java 假设你的出生年月日为:2000-11-11,请用字特串表示这个数据,并将其转换力:2000年 11月11日。
可以用Java中的日期类(Date、Calendar)或时间格式化类(SimpleDateFormat)来实现这个转换。
使用日期类和格式化类的代码如下:
```java
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateDemo {
public static void main(String[] args) {
Date date = new Date(1005840000000L); // 2001-11-11 00:00:00
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月dd日");
System.out.println(sdf.format(date)); // 输出:2001年 11月11日
}
}
```
上述代码中,将出生年月日转换成毫秒数(1005840000000L)创建一个Date对象,然后使用SimpleDateFormat类的format()方法将Date对象格式化成指定的字符串形式,即“2001年 11月11日”。
另外,也可以使用字符串的substring()方法截取年、月、日,再拼接成新的字符串。代码如下:
```java
public class StringDemo {
public static void main(String[] args) {
String birth = "2000-11-11";
String year = birth.substring(0, 4);
String month = birth.substring(5, 7);
String day = birth.substring(8, 10);
String dateStr = year + "年 " + month + "月" + day + "日";
System.out.println(dateStr); // 输出:2000年 11月11日
}
}
```
上述代码中,使用字符串的substring()方法截取出生年月日的年、月、日,然后使用“年”、“月”、“日”等字符拼接成新的字符串,即“2000年 11月11日”。
删除重复字符:输入一个以回车级结束的字符串(少于80个字符),去掉重复的字 符后,按照字符ASCII码顺序从小到大排用字后输出。试编写相应程序。用c
以下是用C语言实现的删除重复字符并按ASCII码顺序排序的程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[80];
int i, j, k, len;
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (str[j] == str[i]) { // 找到重复的字符
for (k = j; k < len; k++) {
str[k] = str[k + 1]; // 把后面的字符都前移
}
len--; // 字符串长度减1
j--; // 继续在当前位置比较
}
}
}
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (str[j] < str[i]) { // 如果后面的字符比前面的小,交换位置
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
printf("%s", str);
return 0;
}
```
输入一个字符串,程序会先删除其中的重复字符,然后按照ASCII码顺序从小到大排序,最后输出结果。
阅读全文