Java 如何在字符串中的每个字符之间生成随机字符?
我有一个代码,其中我必须实现一个接口,目的是获取一个字符串,如Java 如何在字符串中的每个字符之间生成随机字符?,java,oop,polymorphism,abstract,Java,Oop,Polymorphism,Abstract,我有一个代码,其中我必须实现一个接口,目的是获取一个字符串,如mycokisred,并在其中从原始单词的每个字符串之间插入随机字符。在这种情况下,这可能会妨碍,例如,meynciovoksidswrbendn。另一个例子是,为了完整性:mycleverpassword字符串可以变成mxyschlmezvievrppeaysisvwcoorydc 我知道我的代码并不完全适合这个目的,但是有人能从这个出发点帮助或指导我做什么吗 import java.util.Random; publi
mycokisred
,并在其中从原始单词的每个字符串之间插入随机字符。在这种情况下,这可能会妨碍,例如,meynciovoksidswrbendn
。另一个例子是,为了完整性:mycleverpassword
字符串可以变成mxyschlmezvievrppeaysisvwcoorydc
我知道我的代码并不完全适合这个目的,但是有人能从这个出发点帮助或指导我做什么吗
import java.util.Random;
public class password implements Encryptable
{
private String message;
private boolean encrypted;
private int shift;
private Random generator;
public password(String msg)
{
message = msg;
encrypted = false;
generator = new Random();
shift = generator.nextInt(10) + 5;
}
public void encrypt()
{
if (!encrypted)
{
String masked = "";
for ( int index = 0; index < message.length(); index++)
masked = masked + (char)(message.charAt(index) +shift);
message = masked;
encrypted = true;
}
}
public String decrypt()
{
if (!encrypted)
{
String unmasked = "";
for ( int index = 0; index < message.length(); index++)
unmasked = unmasked + (char)(message.charAt(index) - shift);
message = unmasked;
encrypted = false;
}
return message;
}
public boolean isEncrypted()
{
return encrypted;
}
public String toString()
{
return message;
}
}
public class passwordTest
{
public static void main(String[] args)
{
password hide = new password("my clever password");
System.out.println(hide);
hide.encrypt();
System.out.println(hide);
hide.decrypt();
System.out.println(hide);
}
}
public interface Encryptable
{
public void encrypt();
public String decrypt();
}
import java.util.Random;
公共类密码实现可加密
{
私有字符串消息;
私有布尔加密;
私人内部转移;
专用随机发生器;
公共密码(字符串msg)
{
消息=消息;
加密=假;
生成器=新随机数();
班次=发电机。下一个(10)+5;
}
公共void encrypt()
{
如果(!加密)
{
字符串掩码=”;
对于(int index=0;index
只需使用此命令对字符串进行随机化和规范化:
private String randomize(String s) {
String re = "";
int len = s.length();
for(int i = 0; i < len - 1; i++) {
char c = s.charAt(i);
re += c;
re += (char) (generator.nextInt('z' - 'a') + 'a');
}
re += s.charAt(len - 1);
return re;
}
private String normalize(String s) {
String re = "";
for(int i = 0; i < s.length(); i+=2) {
re += s.charAt(i);
}
return re;
}
私有字符串随机化(字符串s){
字符串re=“”;
int len=s.length();
对于(int i=0;i
类应该以大写字符开头。您不需要这样做,但例如Eclipse会哭泣