
正文
java代码区字符串 java 字符编码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
JAVA中如何逐行取得代码中的字符串,也就是' '和" "中的内容,求代码!
好java代码区字符串了java代码区字符串,经过50分钟的调试java代码区字符串,基本上没什么bugjava代码区字符串了,我的速度很慢啊。希望能让你满意。
package cn.web;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
/**
* @target:为了取出java文件中的字符串常量值和字符常量值,也就是""和''之间的内容
* @author Saler
* @date 2010-12-27
*/
public class QueryString {
static ArrayListStringAndLine al = new ArrayListStringAndLine();
public static void main(String[] args) throws IOException {
File f = new File("test.java");
if(!f.exists()){
f.createNewFile();
}
int i = 1;
String str = "";
BufferedReader br = new BufferedReader(new FileReader(f));
while((str=br.readLine())!=null){
FindoutString(str,i++);
}
for(int j = 0;jal.size();j++){
System.out.println("字符串:\""+al.get(j).str+"\"\t行号:"+al.get(j).line);
}
}
private static void FindoutString(String str, int line) {
boolean bool = false;
int start = 0;
int end = 0;
String subStr;
for(int i=0;istr.length();i++){
int index = i;
if(str.charAt(index)=='"'||str.charAt(index)=='\''){//||str.charAt(i)=='\''
start = index+1;
while((str.charAt(++index)!='"'||str.charAt(++index)=='\'')indexstr.length()-1);
end = index-1;
}
i = index;
if(end-start!=0){
subStr = str.substring(start,end);
StringAndLine sal = new StringAndLine(subStr, line);
al.add(sal);
start = 0;
end = 0;
}
}
}
}
class StringAndLine{
String str;
int line;
public StringAndLine(String str,int line){
this.str = str;
this.line = line;
}
}
我把测试文件和运行结果也给你发过去。
测试文件java代码区字符串:test.java
package com.first;
class erro //错误处理类
{
String[] err={" 缺少左括号"};
char sex = '男';
erro(int linenumber,int t)
{
System.out.println("行:"+linenumber+" 错误号"+t+" "+err[t]);
}
}
运行结果:
字符串:" 缺少左括号" 行号:5
字符串:"男" 行号:6
字符串:"行:" 行号:9
字符串:" 错误号" 行号:9
字符串:" " 行号:9
希望能让你满意,呵呵,祝你好运!
相关问答
Q1: 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的语句来执行.
Q2: java中怎么进行字符串替换?
使用replace方法
该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串,例如:
String s = “abcat”;
String s1 = s.replace(‘a’,‘1’);
该代码的作用是将字符串s中所有的字符a替换成字符1,生成的新字符串s1的值是“1bc1t”,而字符串s的内容不发生改变。如果需要将字符串中某个指定的字符串替换为其它字符串,则可以使用replaceAll方法,例如:
String s = “abatbac”;
String s1 = s.replaceAll(“ba”,“12”);
该代码的作用是将字符串s中所有的字符串“ab”替换为“12”,生成新的字符串“a12t12c”,而字符串s的内容也不发生改变。
字符串在存储上类似字符数组
它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:
长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
Q3: Java代码截取字符串
String infp="[text]";
String [] mText=info.split("[");
String [] strings=mText[ 1].split(",");
return strings[0].substring(0,strings[0].length()-1);
Q4: java代码拼接字符串的几种方式
String类的方法java代码区字符串:
①利用运算符"+"
②public String concat(String str)进行字符串的拼接操作
StringBuffer的方法:
①public StringBuffer append(String str)将str添加到当前字符串缓冲区的字符序列的末尾
②public StringBuffer insert(int offset,String str)在当前字符串缓冲区的字符序列的下标
索引offset插入str。如果offset等于旧长度java代码区字符串,则str添加在字符串缓冲区的尾部
如图所示
关于java代码区字符串和java 字符编码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







