正文
java字符串换位代码 java字符串位置替换
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
java字符串怎么转换为代码
方法是有的,但不全实际.
首先,你要理解,JAVA代码的运行是要被编译成字节码codebyte后才能被执行的,以你问题中的意思,那个字符串应该是在怎么代码被编译后项目在运行时,再传入的参数,这时,要想把传入参数的字符串当成JAVA代码来运行,只有一种办法,就是把传进来的字符串转换成字节码,并且,要虚拟加一个方法体出来.这也不是不可行,可用的技术有asm.cglib等字节码技术.但你想,对于你的问题.这样有实际的意义吗
你还不如,把system.out.print重定义成新的外调方法调动来的清晰
java简单小程序 字符串换位
那就去用栈的特性,自己写一个栈类。
package reverse;
import java.util.Scanner;
import stack.StackX;;
public class ReverseApp {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(true){
System.out.print("Enter a String:");
String value = in.nextLine();
if(value.equals("")){
System.out.println("Program is Exit");
break;
}
Reverse rev = new Reverse(value);
System.out.println("Reversed:"+rev.doRev());
}
}
}
class Reverse {
private String input;
private String output;
public Reverse(String in){
input = in;
}
public String doRev(){
int stackSize = input.length();
StackX stack = new StackX(stackSize);
for(int i = 0;iinput.length();i++){
char ch = input.charAt(i);
stack.push(ch);
}
output = "";
while(!stack.isEmpty()){
output += (char)stack.pop();
}
return output;
}
}
package stack;
public class StackX {
private int maxSize;
private int[] stackArray;
private int top;
public StackX(int s) {
maxSize = s;
stackArray = new int[maxSize];
top = -1;
}
public void push(int value) {
stackArray[++top] = value;
}
public int pop() {
return stackArray[top--];
}
public int peek() {
return stackArray[top];
}
public boolean isEmpty() {
return (top == -1);
}
public boolean isFull() {
return top == (maxSize - 1);
}
}
不好意思,弄得太复杂了。。。
其实就这样算了。。。
import java.util.Scanner;
public class TestStack {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
System.out.println(str);
for(int i = str.length()-1;i=0;i--){
char c = str.charAt(i);
System.out.print(c);
}
}
}
java 字符串颠倒和换位
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
import java.util.Arrays;
/**
* 一开始的数字是12345678,全部加上1以后是23456789,然后第一位和最后一位颠倒,
* 变成93456782,然后在把这组数字顺序颠倒,变成28765439~ 就是这意思
*
* @author Gao
* @version 2009-7-29
*
*/
public class Test
{
public static void main(String[] args)
{
String a = "12345678";
String b = "";
// 使用了java.text.CharacterIteraoter类来迭代字符串
CharacterIterator ci = new StringCharacterIterator(a);
int[] nums = new int[a.length()];// 创建一个数组, 他的长度等于字符串的长度
int i = 0;
for (char ch = ci.first(); ch != CharacterIterator.DONE; ch = ci.next())
{
// 判断当前字符是否为数字
if (Character.isDigit(ch))
{
int n = Integer.parseInt(String.valueOf(ch));
nums[i++] = n + 1;
}
}
swap(nums);// 交换头和尾
reverse(nums);// 颠倒数组内所有元素
System.out.println(Arrays.toString(nums));
}
/**
* 交换头和尾两个值
*
* @param nums
*/
private static void swap(int[] nums)
{
// 判断数组是否足够大,如果元素小于1则没有交换的可能
if (nums.length 1)
{
int len = nums.length - 1;
int tmp = nums[0];
nums[0] = nums[len];
nums[len] = tmp;
}
}
/**
* 颠倒数组内所有元素
*
* @param nums
*/
private static void reverse(int[] nums)
{
// 这里可能数据量大的话会有性能问题, 一时没想到好的算法~.~
for (int i = 0; i nums.length; i++)
{
for (int j = i; j nums.length; j++)
{
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
}
}
}
因为你也是新学的,所以没有使用太多集合类, 还是原始一点儿好, 集合类也不过就是把这些过程进行了封装而已, 而且总是用集合类也无助于基础只是的学习
java中怎么进行字符串替换?
使用replace方法
该方法的作用是替换字符串中所有指定的字符java字符串换位代码,然后生成一个新的字符串java字符串换位代码,例如:
String s = “abcat”java字符串换位代码;
String s1 = s.replace(‘a’java字符串换位代码,‘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中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
关于java字符串换位代码和java字符串位置替换的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。