如何替换字符串中的第一个字符和中间字符



我需要替换字符串中的第一个和中间的字符,但没有生成器等,只需要替换,但idk如何制作。

String char = JOptionPane.showInputDialog(null, "Input string with more than 3 char");
if (char.length() < 3) {
JOptionPane.showMessageDialog(null, "Wrong input");

我刚刚做了这个代码,就这样,idk如何继续。

示例:输入-pniut

我试过用类似char.length/2的smth,但不行。

您可以将字符串转换为字符数组,然后交换0和中间位置的字符。然后将数组转换回String。例如,我在这里硬编码了2,但就像你在评论中提到的那样,你需要弄清楚中间位置的字符。

String str = "input";
int mid = -1;
if(str.length() % 2 == 0) {
str.length() / 2 - 1 
} else {
str.length() / 2;
}
char[] arr = str.toCharArray();
char temp = '0';
temp = arr[0];
arr[0] = arr[mid];
arr[mid] = temp;
String.valueOf(arr);

正如你在评论中所说,你需要找出中间字符的价值。

由于String对象是不可变的,因此通过toCharArray()将原始String转换为char[],替换字符,然后通过String(char[])构造函数从char[]生成新的String,其工作方式如下所示:

char[] c = character.toCharArray();
// Change characters at desired indicies
c[0] = 'p';                    // first character
c[character.length()/2] = 'i'; // approximate middle character
String newString = new String(c);
System.out.println(newString); // "pniut"

简单答案:不可能(对于一般情况(。

意思是:String.replace()的所有变体都是通过用另一个事物替换一个事物来工作的。没有在任何地方使用索引的概念。所以你不能说"用A替换索引1"one_answers"用B替换索引3"。

简单的解决方案是将字符串推入char[],然后通过索引交换/替换单个字符。

我打赌本课程的目标是学习如何使用API。从这里开始Java API。转到java.lang.String.

我将关注.toCharArray((方法和以char[]为参数的构造函数。您需要这样做,因为String是不可变的,不能更改。然而,可以更改char[],允许您修改第一个和中间的插槽。然后,您可以将修改后的数组转换回String。

最新更新