导航:首页 > 编程语言 > java动态字符串

java动态字符串

发布时间:2022-10-29 11:01:28

‘壹’ java中怎么执行字符串中的代码

在javascript中eval()可以实现字符串转代码,java中需要使用动态编译
把获得的字符串写入一个临时文件中,然后编译它,在调用其中的函数。
我们把要转换的字符串构造一个完整的类:如果方法是有返回值的.则:

public object eval(string str){
//生成java文件
string s = "class temp{";
s += "object rt(){"
s += "myclass mc = new myclass();"
s += " return mc."+str+"();";
s += "}"
s +="}";
file f = new file("temp.java");
printwriter pw = new printwriter(new filewriter(f));
pw.println(s);
pw.close();
//动态编译
com.sun.tools.javac.main javac = new com.sun.tools.javac.main();
string[] cpargs = new string[] {"-d", "所在目录","temp.java"};
int status = javac.compile(cpargs);
if(status!=0){
system.out.println("没有成功编译源文件!");
return null;
}
//调用temp的rt方法返回结果:
myclassloader mc = new myclassloader();
class clasz = mc.loadclass("test.class",true);
method rt = clasz.getmethod("rt", new class[]{ string[].class });
return rt.invoke(null, new object[] { new string[0] });
//如果方法没有返回就直接调用
}

我们可以先写好多个重载的eval,有返回值和没有返回值的.以及可以传递参数的.

这样我们就可以用字符串转换为java的语句来执行.

‘贰’ 编写Java程序,将一字符串其中的大小写字母的字符分别输出

循环字符串用charAt方法来获取字符,将字符转为int,只要判断转换后的数值就可以判断大小写字母,大写字母的范围是65-90,小写字母的范围是97-122。

public class Main {

public static void main(String[] args) {

String s = "aaBvdEFdsd";

StringBuffer ss = convertString(s);

System.out.println("大小写转换后是:" + convertString(s));

System.out.println("倒序输出后是:" + ss.reverse());

}

public static StringBuffer convertString(String str) {

String upStr = str.toUpperCase();

String lowStr = str.toLowerCase();

StringBuffer buf = new StringBuffer(str.length());

for (int i = 0, k = str.length(); i < k; i++) {

{

if (str.charAt(i) == upStr.charAt(i)) {

buf.append(lowStr.charAt(i));

} else {

buf.append(upStr.charAt(i));

}

return buf;

(2)java动态字符串扩展阅读:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

‘叁’ java 如何根据字符串 动态执行方法(无参和有参)

importjava.lang.reflect.Method;

publicclassTest{
publicstaticvoidmain(String[]args){
Stringa="testa";
Stringb="testb";

call(a);
call(b,"hello");

}

privatestaticvoidcall(StringmethodName){
try{
Methodm=Test.class.getDeclaredMethod(methodName);
m.invoke(Test.class);
}catch(Exceptione){
e.printStackTrace();
}
}

privatestaticvoidcall(StringmethodName,Stringparam){
try{
Methodm=Test.class.getDeclaredMethod(methodName,String.class);
m.invoke(Test.class,param);
}catch(Exceptione){
e.printStackTrace();
}
}

publicstaticvoidtesta(){
System.out.println("无参数");
}

publicstaticvoidtestb(Stringc){
System.out.println(c);
}
}

试试这个可以不。


如果解决了您的问题请采纳!
如果未解决请继续追问

‘肆’ 如何在Java控制台输出动态效果(字符的跳动)

字符跳动好像不的行额...我只知道什么颜色啊!字体啊什么的或者加动态加音乐什么的!对了你可以这样嘛!判断文本的长度!如果长度在某个段内就调用Substring()截取字符串来设定大小颜色什么的!再创建几个Icon ir= new ImageIcon(); 插入些制定找好的图片 你看怎么样~!?加音乐如下! 可以这样! 也是取值到某段就放MUSIC 通过Java提供的AudioClip类就可以播放了:
mid = java.applet.Applet.newAudioClip(this.getClass().getResource(midUrl[0]));mid.loop();
//循环mid.play();
//播放mid.stop();
//停止检举midUrl[0]是文件的路径 不知道兄弟帮到你没!哎!我也就这点功力了。嘿嘿

‘伍’ java 中 String 数组怎么动态赋值

首先明确一下数组的初始化:

//静态初始化
inta[]={1,2,3};
//动态初始化
inta[];a=newint[3];a[0]=1;a[1]=2;a[2]=3;
//默认初始化
inta[]=newint[5];

JAVA是强类型,数组类型一旦声明,就不能更改了;

如果数组长度确定,我想所谓的“动态赋值”用循环应该可以搞定;

如果数组的长度是不确定的,我认为你这个提问才有点价值,因为这需要根据具体情况来改变数组的长度,告诉你java是怎么干的,用的System.array,jdk里好多操作数组的源码都是用的这个,比如ArrayList的实现


闲着没事写了个小例子玩玩:


importjava.util.Random;
importjava.util.Scanner;
/**
*
*@authorLYTG
*@since2015-12-29上午12:21:09
*/
publicclassDemoTest{
/**
*@authorLYTG
*@paramargs
*/
publicstaticvoidmain(String[]args){
test2();
}
/**
*@authorLYTG
*@paramarray
*/
publicstaticvoidout(String[]array){
if(array==null){
System.out.println("null");
return;
}
if(array.length<1){
System.out.println("{}");
return;
}
StringBuffersb=newStringBuffer();
sb.append("{"");
sb.append(array[0]);
sb.append(""");
for(inti=1;i<array.length;i++){
sb.append(","");
sb.append(array[i]);
sb.append(""");
}
sb.append("}");
System.out.println(sb.toString());
}
/**
*声明一个长度为5的String类型数组,并为每个数组元素赋值一个随机整数
*@authorLYTG
*/
publicstaticvoidtest1(){
String[]array=newString[5];
for(inti=0;i<array.length;i++){
array[i]=String.valueOf(newRandom().nextInt());
}
out(array);
}
/**
*在控制台输入字符,把每次输入的字符保存到一个数组中,
*如果输入的字符串中包含空格,则切割后再分别保存到此数组中,
*在每次输入完成后输出整个数组,直到手动终止程序
*@authorLYTG
*/
privatestaticString[]array=newString[0];
publicstaticvoidtest2(){
Scannersc=newScanner(System.in);
System.out.println("请输入一串字符(输入完请敲回车):");
Stringinput=sc.nextLine();
if(input.contains("")){
String[]a=input.split("");
intarrayLength=array.length;
intaLength=a.length;
String[]newArray=newString[arrayLength+aLength];
System.array(array,0,newArray,0,arrayLength);
System.array(a,0,newArray,arrayLength,aLength);
array=newArray;
}else{
intarrayLength=array.length;
String[]newArray=newString[arrayLength+1];
System.array(array,0,newArray,0,arrayLength);
newArray[arrayLength]=input;
array=newArray;
}
out(array);
test2();
}
}

‘陆’ java用字符串动态创建对象

/**
* 根据传入的类名和值,动态构造该类的实例
*
* @param _sClassName
* 要构造的类名 如:java.lang.String
* @param _sRealValue
* 要创建的对象的值,比如“wuguowei”
* @return 返回String对象,即值为“wuguowei”的字符串
* @throws Exception
*/
private Object getAttributeObject(String _sClassName, String _sRealValue)
throws Exception {

//1.加载类对象
Class attrObjClass = Class.forName(_sClassName);

//2.如果是Long类
if (attrObjClass.isInstance(new Long(0))) {
return new Long(_sRealValue);
}

//3.如果是Integer类
if (attrObjClass.isInstance(new Integer(0))) {
return new Integer(_sRealValue);
}

//4.其他类型……

//5.返回当前类的实例对象
return attrObjClass;
}

‘柒’ java怎么动态的往一个字符串数组里加入字符串元素,

希望把标题能把问题说明白,什么叫动态往一个字符串数据组里加入元素?我可以理解为你new一个数组之后,给这个数组赋值么?比如:

String[]arr=newString[20];
for(inti=0;i<arr.length;i++){
arr[i]="i="+i;//这里是赋值,是这个意思么?
}

‘捌’ java 中 String 数组怎么动态赋值

String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组
str[0] = a; //赋值
str[1] = b;
str[2] = c;
str[3] = d;
str[4] = e;
//也可以创建并赋值
String[] str = {a,b,c,d,e};//二维数组
String[][] str = new String[2][2]; //创建一个2行2列的二维数组
str[0][0] = a0; //赋值
str[0][1] = a1;
str[1][0] = b0;
str[1][1] = b1;
//也可以创建并赋值
类型名[]/[][] 变量名 = new 类型名[]/[][];

‘玖’ Java 如何向一个定义好的String中动态添加字符串

你这个是往数组中添加而不是字符串中添加。java中的数组没法添加元素,只能再创建一个更长的数组,复制进去。List类将这些功能封装了,相当于动态数组,可以方便的添加和删除元素。

‘拾’ Java怎么获取一个动态的字符串中指定的值

用substring.具体用法:
字符串截取,substring(int
beginindex)
返回一个新的字符串,它是此字符串的一个子字符串。
substring(int
beginindex,
int
endindex)
返回一个新字符串,它是此字符串的一个子字符串。
beginindex
-
起始索引(包括)。从0开始
endindex
-
结束索引(不包括)。
"12345".substring(3)
returns
"45"
"12345".substring(2,
3)
returns
"23"

阅读全文

与java动态字符串相关的资料

热点内容
车载云服务器记录 浏览:738
四川金星压缩机制造有限公司 浏览:53
移动平台图片压缩算法 浏览:35
银行项目java 浏览:568
怎样将pdf转换为ppt 浏览:595
纯净服务器怎么开服 浏览:286
比泽尔压缩机如何换油 浏览:818
编译链接如何生成exe 浏览:73
jre编译运行环境 浏览:271
怎么解压镜像系统 浏览:190
程序员求助国企 浏览:838
云服务器网址租用多少钱 浏览:942
行车记录仪安卓版怎么用 浏览:500
java是不是数字 浏览:183
php模拟浏览器环境 浏览:353
编程谁都能学会吗 浏览:407
使用国家反诈app都要开启什么 浏览:712
下载民宿APP有什么用 浏览:52
续子语pdf 浏览:385
2021年加密货币最新行情 浏览:162