android 莫斯密码转换
package com.example.mosstransfer;
import android.annotation.SuppressLint;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.tool.R;
import java.util.ArrayList;
import java.util.List;
public class MossTransfer extends AppCompatActivity implements View.OnClickListener {
private EditText NewStr,OldStr;
private final String[] strings={"a","b","c","d","e","f","g","h","i","j","k","l","m","n",
"o","p","q","r","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0","?"
,"/","()","-","."};
private final String[] mossstr={".-","-...","-.-.","-..",".","..-.","--.","....","..",
".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",
".--","-..-","-.--","--..",".----","..---","...--","....-",".....","-....","--...",
"---..","----.","-----","..--..","-..-.","-.--.-","-....-",".-.-.-"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mosstransfer);
NewStr=findViewById(R.id.newstr);
OldStr=findViewById(R.id.oldstr);
}
@SuppressLint("NonConstantResourceId")
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.transfer:
transfer();
break;
case R.id.copy:
ClipboardManager clipboardManager=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData=ClipData.newPlainText("Label",NewStr.getText());
clipboardManager.setPrimaryClip(clipData);
Toast.makeText(this, "复制成功", Toast.LENGTH_SHORT).show();
break;
case R.id.clear:
NewStr.setText("");
OldStr.setText("");
break;
}
}
private void transfer() {
String inputstr=OldStr.getText().toString().trim().toLowerCase();
String[] newstr=inputstr.split(" ");
List<String> list=new ArrayList<>();
for (String s : newstr) {
char[] chars = s.toCharArray();
for (char aChar : chars) {
int position = getIndex(strings, String.valueOf(aChar));
list.add(mossstr[position]);
}
}
String newstr1=list.toString()
.replaceAll(","," ")
.replaceAll("\\[","")
.replaceAll("]","");
NewStr.setText(newstr1.trim());
}
//得到值在数组中的位置
public static int getIndex(String[] strings,String str){
for (int i=0;i<strings.length;i++){
if (strings[i].equals(str)){
return i;
}
}
return -1;
}
}
感谢点赞关注回复分享!