每当我运行下面的java代码时,它都会编译,但包含替换方法的行似乎被跳过,因此输入的字符串和输出(newMessage)是相同的。为什么?变量 C 和变量 D 是字符...
进口java.util.Scanner;
public class javaencrypt
{
public static void main(String[] args)
{
// define and instantiate Scanner object
Scanner input = new Scanner(System.in);
//prompt user to enter a string
System.out.println("Please enter a string: ");
String message = input.nextLine();
String newMessage = message;
char c=' '; // the character at even locations
char d=' '; // new character
// go throughout the entire string, and replace characters at even positions by the character shifted by 5.
// access the even characters with a for loop starting at 0, step 2, and ending at length()-1
// for( initial value; maximum value; step)
for(int k=0; k<message.length(); k=k+2)
{
c=message.charAt(k);
d=(char)(c+5);
/*
there will always be characters available, because keyboard is mapped on ASCII which is in the beginning of UNICODE
*/
newMessage.replace(c,d);
}
System.out.println("Message replacement is: " + newMessage);
}
}
Java,字符串是不可变的。
不可变类只是一个其实例不能被修改的类。创建实例时,实例中的所有信息都被初始化,并且不能修改这些信息。
当您调用新消息时,替换(c, d);
这不会更新新消息
,而是创建一个新的字符串
,并将所有字符 c
替换为 d
。如果您希望新消息
更改为包括将 c
替换为 d
,则需要重新分配变量。这看起来像新消息 = 新消息.
我目前有一个问题,一个'而'循环不执行。如果输入文本文件有下一行,我将循环条件设置为true。然而,当我执行我的程序时,循环没有运行。我通过添加一个“System.out.println(text)”来确认这一点,正如我所怀疑的,没有产生任何文本。 什么问题导致循环无法执行?
我读过List.of和Arrays.AsList之间的区别是什么? 我不明白的是,在我的Maven pom.xml中进行了一些依赖项升级之后,为什么我的所有 不再编译。当我在IntelliJ中键入时,autocomplete只会出现成员。我想也许我没有导入?所以显式地指定了它,但仍然: 为什么我好像不能用?我一定是在做傻事...
为什么throw new SkipException()会跳过所有类中的所有方法? 第一类有一个失败的方法,因此该类中的其余方法将被跳过,并且跳过计数器设置为0。 类2应该执行所有方法,并且所有方法都应该在类2中传递,因为跳过计数器设置为0并且在类1执行之后。 下面的代码似乎跳过所有方法,即使只有一个assert.fail包含在类1中? 测试基地: 测试1: 测试2: 控制台输出: 测试执行XML
我想我的程序跳过了while循环,但我真的不确定到底发生了什么。该函数应该通过找到GCD,然后将分子和分母除以该数字来减少分数。 我得到分子和分母的绝对值,以确保如果分数是负数,我会在最后保持它。如果分子为0,则要求我返回(0,1)。问题是关于while循环。。。似乎它被完全跳过了。有什么建议吗?
我现在有点困惑。我试过: 得到: 然而,我想要: 我的代码怎么了?
我在读关于锁的